Hi,
ich ämpf grade mit einem Loginscript für WoW, ja ich weis mal wieder eins, aber ich wollte nicht übder den weg gehen wie alle die ich hier gefunden haben über einen "sleep" sondern über eine erkennung das das fenster geladen ist.
So der script ist soweit fertigm, es liest die accounts aus ( nur die Namen) die auf dem Computer sind und schreibt diese in eine Compobox, der Anwender muss nur noch sein PW hinzufügen welches in einer .ini Datei im selben Verzeichniss wie das Script ist, gespeichert wird (Verschlüsselt natürlich).
Dann muss man nur noch die gewünschten Paramter wählen (z.B. Vollbild, Fenster Modus, kein Sound, etc. ) und auf login gehn.
wenn ich WoW im Fenster-Modus starte klappt alles perfect, nur wenn ich im Vollbild starte geht es nicht.
Hab das erkennen ob der Loginscreen fertig geladen ist über Pixelsearch (ich weis das wird gerne bei Bots verwendete aber das hier ist kein Bot!) gelöst. Allerdings bei Vollbild bekomm ich immer als Pixelfarbe "0" geliefert.
Ein anderer ansatz wäre gewesen zuüberprüfen ob der Prozess weniger CPU leistung brauch, da gibt es aber das Probel (hab eben mal die auslastung beobachtet) das es beim laden kurz sehr weit runter geht und so mit eine genaue erkennung nicht möglich ist.
So hier nun mal der auszug aus dem Script.
Vielleicht hat einer eine Idee wie ich es realisieren kann?
Such jetzt schon seid stunden in diesem und dem englischen Forum nach lösungen aber leider finde ich nichts.
Zur Info zum System:
Os : Windows Vista 32bit
Theme: Aero
Func _Login()
$WoWUser = _GUICtrlComboBox_GetEditText($ComboAccount)
$WoWPassword = GUICtrlRead($txtPass)
WinActivate("World of Warcraft")
WinWaitActive("World of Warcraft")
$hWnd = WinGetHandle("World of Warcraft");Handle of WoW, for controlsend
Sleep(100)
$xy = WinGetPos("World of Warcraft")
$Coordinaten = PixelSearch( $xy[0], $xy[1], $xy[2], $xy[3], 0xffc700,1,1,$hWnd)
if Not @error Then
ControlSend($hWnd, "", "",$WoWUser )
Sleep(100)
ControlSend($hWnd, "", "", "{TAB}")
Sleep(100)
ControlSend($hWnd, "", "", $WoWPassword)
Sleep(100)
ControlSend($hWnd, "", "", "{ENTER}")
Sleep(100)
Else
_Login()
EndIf
EndFunc
[/autoit]Vielen Dank schon mal.
Gruß
nefas