Login für WoW + Parameter(mal wieder)

  • 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

    [autoit]

    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

    [/autoit][autoit][/autoit][autoit]

    ControlSend($hWnd, "", "",$WoWUser )
    Sleep(100)

    [/autoit][autoit][/autoit][autoit]

    ControlSend($hWnd, "", "", "{TAB}")
    Sleep(100)

    [/autoit][autoit][/autoit][autoit]

    ControlSend($hWnd, "", "", $WoWPassword)
    Sleep(100)

    [/autoit][autoit][/autoit][autoit]

    ControlSend($hWnd, "", "", "{ENTER}")
    Sleep(100)

    [/autoit][autoit][/autoit][autoit]

    Else
    _Login()
    EndIf

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit]


    Vielen Dank schon mal.

    Gruß
    nefas

  • Jab ich weis, aber da es sich hier ja um keinen Bot handelt sollte es ja kein Problem sein.

    da ja ein Bot dafür ist um sich im Spiel vorteile zuverschaffen, z.B. dadurch das er für mich Level geht, und mein Script nichts weiter macht als die Wow.exe zustarten und dann beim Anmeldebildschierm mein Username und mein Passwort eingibt, kann hier nicht die reden von einem Bot sein.

    Oder? ;)

    P.S. ich wusste das so ein kommentar kommen würde, darum hab ich vorher versucht recht ausführlich mein script zubeschreiben um klar zustellen das es kein Bot ist.

    gruß nefas

  • Hi...
    Also ich würde es mit PixelChecksum() machen....
    Erstelle vom Anmeldebereich eine Checksumme(Bereich der sich nicht ändert, aber einduetig identifizierbar ist [reichen 10x10 pix]
    ...beim start des Scriptes wartest du bis das wow gestartet ist... und prüfst genau den Bereich wieder bis die checksumme überein stimmt mit der vorher gespeicherten... dann weißt du genauch das du im Anmeldescreen bist...
    Hoffe jetzt mal das ich gegen keien Regeln verstoße mit der Hilfe....
    MFG chris :D

  • hi,
    danke für den tip aber leider klappt das im vollbild modus nicht da der komplette bildberiech als schwarze fläche erkannt wird. Egal wie weit geladen ist.

    Solltest eigentlich nicht gegen irgend welche regel verstosen, da es ja kein bot ist.

    Es sei denn als bot wird jedes Script angesehn das eine exe startet und ein string übergibt, wie z.B. Wenn ich Firefox aufmache und an diesen eine URL sende. 8)

    Da mein script nicht anderes macht als diese.

    Hier mal ein Screenshot von der Gui

    autoit.de/wcf/attachment/3730/

  • Im Vollbild blockiert WOW die ganzen Pixel-Funktionen... Da ist es dann eben nicht möglich, diese zu verwenden.

  • Zitat

    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.

    geht net

    Padmak

  • hatte zwischen durch es auch mal über einen Umweg verscuht, und zwar ist es möglich mit der "Printscreen" funktion von Windows einene Screenshot zumachen, diesen wollte ich dann im Hintergrund in Paint einfügen über "Strg+v" und da dann mit Pixelsearch suchen.

    Lief aber irgeng wie nicht so wie es soll, im fenster Modus hat er mir immer ein "v" noch mit eingefügt obwohl ich per controlclick und handle auf Paint den befehl übergeben hab.
    Und im Vollbild blieb der Schirm komplett schwarz und musste dann über den Taskmanager alles beenden.

    Schade, muss mich wohl damit abfiden das es nicht so möglich ist. Hab jetzt auch schon gute 10 - 12 stunden darein gesteckt ohne erfolg.

    und nur für den Fenstermodus allein ist es ja auch nicht so brickelt.

    mfg

    nefas