Autohotkey, kurz AHK, ist eine Skriptsprache, mit der man die Windows-Benutzeroberfläche steuern kann. Mit Hilfe von AutoHotkey kann man sich wiederholende Arbeitsaufgaben unter Windows automatisieren. AutoHotkey ist freie Software und auch für Programmieranfänger leicht zu erlernen. Die zur Programmiersprache mitgelieferte Dokumentation enthält ein Tutorial und zu jedem Befehl komplette Programmbeispiele oder zumindest konkrete Anwendungsfälle.
AutoHotkey ist ein Programm für Windows 2000, XP und Vista. Unter Windows 9x/Me funktioniert es mit einigen Einschränkungen (nicht verfügbar: Hotstrings, Maustasten-Hotkeys und bestimmte weitergehende Hotkey-Features).
Direktiven und Befehle innerhalb einer .ahk-Datei:
#Persistent
#SingleInstance force
SetTitleMatchMode 2
#include funktionen.ahk
Wenn beim Druck einer bestimmten Taste etwas ausgeführt werden soll, muss dieser Code mit einer Tastenkombination und zwei Doppelpunkten danach geschrieben werden (TASTENKOMBINATION::):
List of Keys, Mouse Buttons, and Joystick Controls
Beispiel: Win+x löst Dialogbox mit entsprechendem Text aus:
#x:: msgbox Tasten Win und x gedrückt! return
Stellvertreter | spezielle Taste |
---|---|
# | Windows-Taste |
^ | STRG (CTRL)-Taste |
! | Alt-Taste |
+ | Shift-Taste |
Alternativ können Tastendrücke mit dem Befehl Send an ein Programm übermittelt werden.
; einzeiliger Kommentar /*; mehrzeiliger Kommentar */
a = 2 ;String oder Integer
a := 2 ;nur integer Zahl b := "var1" ;String b = var1 ;String oder integer c := "var1" d := b; d enspricht Variable b (Kopie) e = %b% ;Var e (String) der Inhalt von b enthält e := % b%a% ;Expressionmode (erstes % schaltet um): Variable e entspricht Variable b2 in Kopie (für Laufvariablen)
c := % b . c ; die Inhalte von Variable b und c werden verkettet
Funktionen: Bekommen i. d. R. Werte übergeben und geben ein Ergebnis zurück.
Der Variablen Ergebnis wird das Ergebnis des Funktionsaufrufes von Addition zugewiesen. Addition bekommt 1 und den Inhalt von a (2) übergeben, in der Variable Ergebnis steht somit am Ende 3.
a := 2 Ergebnis := Addition(1, a) Addition(a,b,c=0) ;c ist optionale Variable (d. h. muss nicht übergeben werden); c:=0 funtioniert hier nicht { return a+b+c }
Prozeduren: Wie Funktionen nur ohne Übergabewerte.
Gosub, Halloprozedur Halloprozedur: msgbox Hallo Welt return
Der gewünschte Code wird x-mal (hier 3) wiederholt.
loop 3 { msgbox Durchlauf Nr. %a_index% }
Mittels IfWinExist und IfWinNotExist kann nach Fenster gesucht werden. Da der Fenstertitel bei verschiedenen Sprachversionen und geöffneten Dateien anders lautet, ist auch eine Filterung nach anderen Kriterien (Klassen, …) möglich.
Timer lösen nach bestimmten Intervallen Aktionen aus.
Hier wird alle 250 ms die Prozedur „checkActiveWindow“ aufgerufen, die nach einem Fenster sucht, dass „Taschenrechner“ als Titel hat.
SetTimer, checkActiveWindow, off SetTimer, checkActiveWindow, 250 checkActiveWindow: IfWinExist, Taschenrechner msgbox Taschenrechner gefunden! return