AHK Hotkeys/Automatisierungen

12/27/2012 20:27 cяαzуℓυмι#1
AHK Hotkeys/Automatisierungen
//Vorwort
Dies wird ein kleines aber feines TuT, wie man AHK am besten benutzt und damit coded! Dies ist ein reines N00B/Anfänger Tutorial. Also Fortgeschrittene bitte jetzt wegschalten. Ich hoffe es gefällt euch.

//Inhalt
- Vorwort
- Was bringt AHK?
- Was brauche ich?
- Wie code ich meinen ersten Hotkey mit AHK?
- Wie kann ich eigene Profile für Spiele machen?
- Wie code ich Automatisierungen?
- Script teilen ohne Quellcode preiszugeben
- Schlusswort

Dann fangen wir mal an:

//Was bringt AHK?
AHK ist eine Scriptsprache, die gedacht ist um unkompliziert Hotkeys und Automatisierungen (wie schon im Name enthalten) zu coden. AHK ist nicht für Hacks geeignet. Man kann mit AHK nur das machen, was man auch mit Maus und Tastatur machen kann.

//Was brauche ich?
Als erstes brauchst du das AHK selbst, um uncompiled Script auszuführen und ein neue .ahk zu erstellen. Dies kannst du downloaden von der offizielen [Only registered and activated users can see links. Click Here To Register...] Seite.
Das zweite ist optional. Ich finde den Standard Editor von Windows nicht gut. Deswegen empfehle ich einen Drittanbieter Editor wie [Only registered and activated users can see links. Click Here To Register...] oder andere herunterzuladen.
Sonst benötigt ihr noch ein bisschen Englischkenntnisse und natürlich ein Versuchsobjekt (CS:S oder andere Spiele).

//Wie code ich meinen ersten Hotkey mit AHK?
Als erstes erstellen wir ein neues *.ahk Dokument über das Kontextmenü.
[Only registered and activated users can see links. Click Here To Register...]
Nun öffnen wir dieses Dokument mit dem Editor unserer Wahl. Bei mir Notepad++:
[Only registered and activated users can see links. Click Here To Register...]
Nun zur Theorie:
Code:
f10::
Befehle...
Somit beschreibt ihr den Key. Man kann f10 natürlich auch durch W oder anderes ersetzen.
Nun könnt ihr Befehle unter euern Key setzen:
Code:
f10::
send {Enter}
send Hallo
send {Enter}
Ganz einfach ;)
Wenn ihr ein Script haben wollt, dass ihr direkt InGame pausieren könnt, fügt diese Zeile oben hinzu:
Code:
f10::
Suspend
return
Nun ist es euch erlaubt InGame das Script zu deaktivieren. Wenn ihr die Taste nochmal drückt, wird es wieder aktiviert.

//Wie kann ich eigene Profile für Spiele machen?
Dazu erstellt ihr zu jedem Spiel eine eigene *.ahk. Nun fangt ihr an die Hotkeys zu beschreiben:
Code:
f1::
Suspend
return

f10::
send bla
return

f11::
send blabla
return

usw...
WICHTIG! Das "return" trennt die Hotkeys! Immer beachten, sonst kann es sein, dass Fehler auftreten.
AHK gibt natürlich noch mehr Befehle mit als nur "send". Diese könnt ihr in der [Only registered and activated users can see links. Click Here To Register...] nachlesen.

//Wie code ich Automatisierungen?
Diesen Punkt beschreibe ich anhand eines einfachen BHop Scriptes für CS:S.
Hier seht ihr den Quellcode:
Code:
f9::
Suspend     ;On/Off des Scriptes
return

*~$Space:: ;Was muss gedrückt sein?
Sleep 200    ;Wieviele ms soll er warten bis zur wiederabfragung
Loop           ;Eine undendliche Schleife (like While 1 in AutoIt)
{                ;Loop-Klammer
GetKeyState, SpaceState, Space, P  ;Abfrage der Taste
If SpaceState = U      ;Bei welchem Stadium soll was passieren?
break                       ;eine Unterbrechung
Sleep 1                  ;Wartezeit bis zur Ausführung eines Befehls
Send, {Blind}{Space}   ;Der Befehl ansich 
}                 ;Loop-Klammer
Dies soll nur eine grobe Erklärung sein, mehr zu den Befehlen gibt es in der oben verlinkten Doku.

//Script teilen ohne Quellcode preiszugeben
Dazu ist ein Obfuscator da. Dieser verunstaltet das Script, sodass es sehr schwer zu entziffern ist.
Ansonsten kann man einmal ohne Optionen über das Kontextmenü einer *.ahk compilen oder über das Programm "Convert .ahk to .exe". Dies ist direkt bei AHK dabei. In diesem Programm kann man auch noch einen benutzerdefinierten Icon einstellen. Hier mal ein Screen davon:
[Only registered and activated users can see links. Click Here To Register...]

//Schlusswort
Ich hoffe mein Tutorial war hilfreich. Falls ihr Schreibfehler entdeckt habt, schreibt es mir bitte in den Thread. Ich würde mich sehr über euer Feedback freuen.
12/31/2012 10:11 FrauReed#2
Erstmal danke für dein gutes tutorial :)

Ich hab noch zwei Fragen:
1. wie kann ich eine Endlosschleife machen, die ich mit einem Hotkey pausieren kann?
2. wenn ich ein Esc senden möchte, muss ich dann
send {Esc} eingeben?
3. und wenn ich left, also die pfeiltaste senden möchte muss ich dann
send {Left} eingeben?

Vielen dank nochmal fürs Tutorial :D
MfG FraReed
12/31/2012 18:35 cяαzуℓυмι#3
Okee. Du kannst meines Wissens nach nur das komplette Script aufhalten. Lösung wäre für deine Loop ein eigenes Script:
F12::
Suspend
return

Loop
{
send ...
}

[Only registered and activated users can see links. Click Here To Register...] <-- Dokumentation. Sind alle Sondertasten aufgelistet in einer Tabelle!
12/31/2012 19:33 FrauReed#4
super, das war genau das richtige!
Danke :)