Tasten an ArcheAge senden

10/02/2014 15:58 Belur#1
Hey,

benutze erfolgreich den Afk-Bot von Paraly. (Noch die v1.10).
Dachte eigentlich die v1.10 hätte mit ControlSend gearbeitet, und da ich mein Mount leveln wollte im Hintergrund, habs ich auch erst damit probiert.

Naja, nichts angekommen in ArcheAge, also hab ich mir mal den aktuellesten Sourcecode angesehen von Paralys Afk-Bot. Tasten werden wohl mit einer Funktion aus der PostMessage UDF gesendet. Also hab ichs mal damit versucht:

Code:
#include <PostMessage.au3> 
$title = WinGetTitle("[CLASS:ArcheAge]", "")
$hwnd = WinGetHandle($title)

while 1
_PostMessage_SendDown($hwnd, 0x41)
_PostMessage_SendDown($hwnd, 0x57)

WEnd
Es passiert aber immer noch nichts. Kenn mich nicht wirklich aus mit AutoIt, wollte wirklich nur etwas sehr simples schreiben, dass 2 Tasten gedrückt hält, aber selbst das misslingt mir schon :D

Hoffe mir kann jmd von euch helfen.

Grüße
10/03/2014 09:00 jokhurt#2
Ist vielleicht ne blöde Frage, da ich nur mit AutoHotKey Erfahrung habe und kein Plan von AutoIT, aber hast Du es mal mit Administratorrechten gestartet?
Wenn nicht kann es sein, dass AutoIt keinen Zugriff auf die App hat, da ArcheAge meinse Wissens nach als Administrator gestartet wird.
10/03/2014 11:50 Belur#3
Danke, hatte den gleichen Tipp grad auch von jmd über Pn bekommen.
Also oben mal ein "#RequireAdmin" einzufügen.
Und Tatsache, jetzt läuft es einwandfrei.

Danke :)
10/03/2014 16:57 alpines#4
Wenn das Spiel per Admin gestartet wird dann muss das Steuerungsprogramm auch per Administratorrechten gestartet werden. Das ist nicht nur bei dem Spiel so.
10/04/2014 23:17 Moneypulation#5
Bei solchen Vollbildspielen würde ich auch immer #RequireAdmin reinschreiben, hatte nämlich genau das selbe Problem bei nem anderen Spiel
10/07/2014 13:28 KDeluxe#6
Code:
$title = WinGetTitle("[CLASS:ArcheAge]", "")
$hwnd = WinGetHandle($title)
Wofür?
Benutz doch gleich:
Code:
$hwnd = WinGetHandle("[CLASS:ArcheAge]")
Falls du das Spiel auch öfters startest:
Code:
$archAgeWindows = WinList("[CLASS:ArcheAge]")
For $i = 1 To $archAgeWindows[0][0]
    $hwnd = $archAgeWindows[$i][1]
    ; ...
Next