ich hab jetzt lange gegooglet, konnte aber nichts zu einem Echtzeit Log finden. Ich würde nämlich gerne einen Log anzeigen lassen während mein Programm läuft und wenn bestimmte Funktionen ausgeführt werden, will ich so etwas wie _FileWriteLog() ausführen. Ich hab jetzt gesehen wie man das in eine .txt Datei speichert aber ich will dass es in Echtzeit, also während das Programm läuft angezeigt wird. Weiß jemand eine Lösung?
So ganz stimmt das nicht, aber notwendig ist es auch nicht. Du kannst beispielsweise ein RichEdit in deiner GUI verwenden, in welches du immer weitere Log-Zeilen hinzufügst. Parallel dazu kannst du die Zeilen auch mittels FileWriteLine() in eine Datei abspeichern.
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
Local $myedit, $msg
GUICreate("Meine GUI mit einem Edit-Feld") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird
$myedit = GUICtrlCreateEdit("Erste Zeile" & @CRLF, 176, 32, 121, 97, $ES_AUTOVSCROLL + $WS_VSCROLL)
GUISetState()
Send("{END}")
; Wird hinzugefügt, 3. Parameter nicht vergessen!
GUICtrlSetData($myedit, "Zweite Zeile",1)
GUICtrlSetData($myedit, "Zweite Zeile2", 1)
GUICtrlSetData($myedit, "Zweite Zeile3", 1)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()
Danke für eure Hilfe. Wisst ihr wie ich jetzt noch einen Zeilenumbruch mach?
Ich denke, ich werde einfach diese GUI anzeigen lassen und dann bei bestimmten Funktionen GUICtrlSetData($myedit, "Funktion xy ausgeführt",1) schreiben
Quote:
Originally Posted by KDeluxe
So ganz stimmt das nicht, aber notwendig ist es auch nicht. Du kannst beispielsweise ein RichEdit in deiner GUI verwenden, in welches du immer weitere Log-Zeilen hinzufügst. Parallel dazu kannst du die Zeilen auch mittels FileWriteLine() in eine Datei abspeichern.
Was genau ist denn ein RichEdit? Google sagt es ist eine UDF aber ich weiß jetzt nicht genau welche Datei das ist
Danke für eure Hilfe. Wisst ihr wie ich jetzt noch einen Zeilenumbruch mach?
Ich denke, ich werde einfach diese GUI anzeigen lassen und dann bei bestimmten Funktionen GUICtrlSetData($myedit, "Funktion xy ausgeführt",1) schreiben
Was genau ist denn ein RichEdit? Google sagt es ist eine UDF aber ich weiß jetzt nicht genau welche Datei das ist
@CRLF -> Carriage return + Linefeed
rich edit ist ein text feld in koda und kann ohne udf genutzt werden
diese methode eines logs hat einige große nachteile.
der erste nachteil ist, das es kein autoscroling gibt...
bsp:
Code:
GUICreate("GUI", 300, 300, Default, Default, 0x10C80000)
GUICtrlCreateEdit("", 5, 5, 290, 290, 0x200844)
For $i=0 To 100
GUICtrlSetData(-1, GUICtrlRead(-1)&@CRLF&$i&" -> abcdefghijklmnopqrstuvwxyz")
Next
While GUIGetMsg()<>-3
WEnd
eine potentielle lösung hierfür wäre die letzte zeile immer oben einzufügen.
ein viel schlimmerer nachteil aber ist, das bei jeder aktualisierung, stets der gesamte log eingelsen werden muss (was irgendwann im laufe der zeit mit sicherheit für probleme sorgen wird). somit wird mit steigender loggröße nicht nur das aktualisieren länger dauern, sondern irgendwann muss das ganze auch zwangsweise zum totalabsturz führen (spätestens, wenn der log mehr speicher benötigt, als zur verfügung steht)
bsp:
Code:
Dim $string
For $i=0 To 10000
$string &= 'a'
Next
GUICreate("GUI", 300, 300, Default, Default, 0x10C80000)
GUICtrlCreateEdit("", 5, 5, 290, 290, 0x200844)
For $i=0 To 100
GUICtrlSetData(-1, GUICtrlRead(-1)&@CRLF&$i&" -> "&$string)
Next
While GUIGetMsg()<>-3
WEnd
die einzige lösung für dieses problem wäre in der tat ein wirkliches rich edit, statt des normalen edits zu nutzen.
diese methode eines logs hat einige große nachteile.
der erste nachteil ist, das es kein autoscroling gibt...
bsp:
Code:
GUICreate("GUI", 300, 300, Default, Default, 0x10C80000)
GUICtrlCreateEdit("", 5, 5, 290, 290, 0x200844)
For $i=0 To 100
GUICtrlSetData(-1, GUICtrlRead(-1)&@CRLF&$i&" -> abcdefghijklmnopqrstuvwxyz")
Next
While GUIGetMsg()<>-3
WEnd
eine potentielle lösung hierfür wäre die letzte zeile immer oben einzufügen.
ein viel schlimmerer nachteil aber ist, das bei jeder aktualisierung, stets der gesamte log eingelsen werden muss (was irgendwann im laufe der zeit mit sicherheit für probleme sorgen wird). somit wird mit steigender loggröße nicht nur das aktualisieren länger dauern, sondern irgendwann muss das ganze auch zwangsweise zum totalabsturz führen (spätestens, wenn der log mehr speicher benötigt, als zur verfügung steht)
bsp:
Code:
Dim $string
For $i=0 To 10000
$string &= 'a'
Next
GUICreate("GUI", 300, 300, Default, Default, 0x10C80000)
GUICtrlCreateEdit("", 5, 5, 290, 290, 0x200844)
For $i=0 To 100
GUICtrlSetData(-1, GUICtrlRead(-1)&@CRLF&$i&" -> "&$string)
Next
While GUIGetMsg()<>-3
WEnd
die einzige lösung für dieses problem wäre in der tat ein wirkliches rich edit, statt des normalen edits zu nutzen.
Das mit dem Scrolling ist mir auch aufgefallen aber ich hab schnell eine Lösung gefunden. Nach jedem Eintrag hab ich _GUICtrlEdit_Scroll ( $Log, $SB_SCROLLCARET ) geschrieben.
Aber mit dem Speicher hast du Recht. Daran hab ich noch garnicht gedacht. Und mein Bot soll für mehrere Stunden einbahnfrei funktionieren.
Danke dir
Edit: Ich werde wohl den Log jede 10-20 Minuten durch einen Timer beenden und wieder neu ausführen. Das hat zum glück keine Auswirkung auf den Bot
wenns sehr auf performance ankommt, schreib dir vllt einen externen log. (nur ne idee, nicht getestet)
sende mit ConsoleWrite an den StdOut stream und benutz eine neue exe um den stream mit StdOutRead auszulesen. Die als CUI anstatt als GUI kompilieren und alles eingelesene wieder mit ConsoleWrite ausgeben. Ich denke dass das Cmd Fenster auf zeilenweises anzeigen von text optimiert ist^^
wenns sehr auf performance ankommt, schreib dir vllt einen externen log. (nur ne idee, nicht getestet)
sende mit ConsoleWrite an den StdOut stream und benutz eine neue exe um den stream mit StdOutRead auszulesen. Die als CUI anstatt als GUI kompilieren und alles eingelesene wieder mit ConsoleWrite ausgeben. Ich denke dass das Cmd Fenster auf zeilenweises anzeigen von text optimiert ist^^
Man kann es aber auch derbe auf die Spitze treiben...
FileWrite wird wohl reichen.
#AutoIt3Wrapper_Change2CUI=y #include <Constants.au3> $idProcess = Run("StdOutTest.exe", @ScriptDir, Default, $STDERR_CHILD + $STDOUT_CHILD) If not $idProcess then Exit
While Sleep(10) $sRead = StdOutRead($idProcess) If $sRead Then If $sRead = "log stop" then Exit If $sRead = "log pause" Then While Sleep(10) If StdoutRead($idProcess) = "log continue" then ExitLoop WEnd EndIf ConsoleWrite($sRead) EndIf WEnd
In Echtzeit Rohstoffe produzieren 07/31/2013 - Web Development - 15 Replies Hallo ihr Lieben,
da ich immoment anscheinend Spaß habe, ein BG zu programmieren, wollte ich euch einmal Fragen, wie es funktioniert, z.B. Holz in Echtzeit zu fördern, da ich es selber nicht weiß. :P
In Echtzeit Onlinestatus abfragen 07/19/2013 - Metin2 PServer Guides & Strategies - 16 Replies Hi Leute!
Da ich momentan ein sicheres Auktionshaus in meinen Testserver integriegen möchte, habe ich nach einer Möglichkeit gesucht, den Onlinestatus des Spielers direkt und ohne Umwege über die last_play Spalte abzufragen, da diese nichts über den konkreten Onlinestatus aussagt.
Da auch andere dieses Problem haben könnten, stelle ich euch nun die Lösung dazu vor.
Die Log-Tabelle speichert jeden Login/Logout, selbst wenn der Client nicht ordnungsgemäß geschlossen wird. (Beispiel:...
Men of War: Goldene Zeiten für Echtzeit-Strategen 03/15/2012 - Gaming News - DE - 16 Replies Mehr Echtzeit-Taktik als jemals zuvor! Peter Games führt Strategiefans erneut ins Schlachtengetümmel des Zweiten Weltkriegs und veröffentlicht Men of War: Gold Edition für PC. Die exklusive Sammleredition steht ab 30. März 2012 in den Händlerregalen und vereint erstmals alle WWII-Teile und -Erweiterungen der legendären Strategiespiel-Reihe.
Men of War: Gold Edition beinhaltet folgende Titel:
Men of War
Men of War: Red Tide
Men of War: Assault Squad
Men of War: Assault Squad –...
MMORPG Suche -> Echtzeit Kampfsystem. 11/06/2011 - Main - 3 Replies Welche MMORPG´s mit Echtzeitkampfsystem kennt ihr?
Also kein WoW oder so ein shit wo du Rundenbasierend kämpfst.
Bitte mit Fantasy setting kein weltraum od. warrock shit :)
Fur deppen (ArctiicInc)
Das ist echtzeit.
http://www.youtube.com/watch?v=Y8W__Hs5boI&fe ature=related
echtzeit chat logger 12/30/2004 - General Gaming Discussion - 2 Replies hat wer sowas? hab zwar einene gefunden, aber der ist zu alt und funzt nichmehr. ansonsten hab ichs mal mim packet sniffer versucht, aber die packete zu interpretieren ist doch schwerer als man denkt hehe.