AutoHotkey, oft abgekürzt als AHK, ist eine bemerkenswerte, wenn auch komplexe Software. Ursprünglich konzipiert, um Hotkeys neu zu belegen, hat es sich zu einer umfassenden Windows-Automatisierungsplattform entwickelt.
Obwohl AHK für Einsteiger nicht übermäßig schwierig zu erlernen ist, da das Grundkonzept relativ einfach ist, handelt es sich dennoch um eine vollwertige, Turing-vollständige Programmiersprache. Programmierkenntnisse oder Vertrautheit mit Programmierkonzepten erleichtern den Einstieg erheblich.
Installation und Nutzung von AutoHotkey
Die Installation von AutoHotkey ist unkompliziert. Laden Sie das Installationsprogramm von der offiziellen Website herunter und führen Sie es aus. Wählen Sie die „Express-Installation“. Nach der Installation können Sie per Rechtsklick auf eine beliebige Stelle und Auswahl von „Neu > AutoHotkey-Skript“ ein neues Skript erstellen.
AHK-Skripte sind Textdateien mit der Dateiendung .ahk. Ein Rechtsklick auf diese Dateien bietet verschiedene Optionen:
- „Skript ausführen“ lädt das Skript mithilfe der AHK-Laufzeitumgebung.
- „Skript kompilieren“ bündelt es in eine ausführbare AHK-Datei, wodurch eine EXE-Datei zur direkten Ausführung entsteht.
- „Skript bearbeiten“ öffnet das Skript im Standard-Texteditor. Obwohl Notepad zum Schreiben von AHK-Skripten verwendet werden kann, empfiehlt sich die Nutzung von SciTE4AutoHotkey, einem Editor speziell für AHK, der Syntaxhervorhebung und Debugging-Funktionen bietet.
Während ein Skript ausgeführt wird – unabhängig davon, ob es als EXE-Datei oder direkt läuft – arbeitet es im Hintergrund im Windows-Infobereich (auch Taskleiste genannt). Das grüne Symbol mit einem „H“ kennzeichnet den aktiven Status.
Um ein Skript zu beenden, anzuhalten, neu zu laden oder zu bearbeiten, klicken Sie mit der rechten Maustaste auf das Benachrichtigungssymbol und wählen Sie die gewünschte Option aus. Skripte laufen so lange im Hintergrund, bis sie manuell beendet werden. Sie werden ebenfalls beendet, wenn Sie sich von Windows abmelden oder Ihren PC neu starten.
Wie AutoHotkey funktioniert
Im Wesentlichen verbindet AHK Aktionen mit Hotkeys. Trotz verschiedener Aktionen, Hotkey-Kombinationen und Kontrollstrukturen, folgen alle Skripte demselben grundlegenden Prinzip. Hier ist ein einfaches AHK-Skript, das Google Chrome startet, wenn Sie Windows + C drücken:
#c:: Run Chrome return
Die erste Zeile definiert den Hotkey. Das Symbol # steht für die Windows-Taste, und ‚c‘ ist die C-Taste auf der Tastatur. Der Doppelpunkt (::) kennzeichnet den Beginn des Aktionsblocks.
Die folgende Zeile definiert die Aktion. In diesem Fall startet sie eine Anwendung mit dem Befehl ‚Run‘. Der Block wird mit ‚return‘ abgeschlossen. Vor dem ‚return‘ können beliebig viele Aktionen ausgeführt werden, die alle nacheinander ausgeführt werden.
Auf diese Weise definieren Sie eine einfache Tastenzuordnung zu einer Aktion. Sie können eine beliebige Anzahl dieser Zuordnungen in einer .ahk-Datei speichern und sie im Hintergrund laufen lassen, damit sie ständig auf neu zugewiesene Hotkeys wartet.
Hotkeys und Modifikatoren
Eine vollständige Liste der AHK-Modifikatoren finden Sie in der offiziellen Dokumentation. Hier werden wir uns auf die nützlichsten (und interessantesten) Funktionen konzentrieren.
Modifikatortasten haben alle einstellige Kurzel. So stehen beispielsweise #, !, ^ und + für Windows, Alt, Control und Shift. Es ist sogar möglich, zwischen der linken und rechten Alt-, Control- und Shift-Taste zu unterscheiden, was die Möglichkeiten für zusätzliche Hotkeys erweitert. Zum Beispiel ist + die rechte Shift-Taste. Eine umfassende Tastenliste enthält alle möglichen Eingaben. (Spoiler: Es können fast alle Tasten verwendet werden. Auch Eingabegeräte ohne Tastatur können mit einer Erweiterung genutzt werden).
Hotkeys können aus beliebigen Tastenkombinationen bestehen, aber irgendwann werden die Kombinationen, die man sich merken kann, knapp. Hier kommen Modifikatoren ins Spiel, mit denen sich komplexere Abläufe definieren lassen. Betrachten wir ein Beispiel, entnommen aus den AHK-Dokumenten:
Das grüne #IfWinActive ist eine Direktive, die zusätzlichen Kontext auf die folgenden Hotkeys im Skript anwendet. Jeder Hotkey danach wird nur ausgelöst, wenn die Bedingung erfüllt ist. Man kann mehrere Hotkeys unter einer Direktive gruppieren. Die Direktive gilt so lange, bis eine andere Direktive folgt. Sie kann mit einem leeren #If zurückgesetzt werden (und wenn das wie ein Hack aussieht, dann willkommen bei AHK).
Die Direktive hier prüft, ob ein bestimmtes Fenster geöffnet ist, das durch ahk_class Notepad definiert wird. Wenn AHK die Eingabe „Win+C“ erhält, wird die Aktion unter dem ersten #IfWinActive nur ausgelöst, wenn die Direktive true zurückgibt. Andernfalls wird die zweite Direktive überprüft. AHK bietet viele Direktiven, die alle in den Dokumenten dokumentiert sind.
AutoHotkey bietet auch Hotstrings, die wie Hotkeys funktionieren, aber eine ganze Textzeichenkette ersetzen. Dies ähnelt der Autokorrektur, und es gibt auch ein Autokorrektur-Skript für AHK. Hotstrings können jedoch jede AHK-Aktion ausführen.
Der Hotstring wird nur ausgelöst, wenn er exakt eingegeben wird. Er entfernt automatisch den passenden Text, um ihn durch den Hotstring zu ersetzen, wobei dieses Verhalten angepasst werden kann.
Aktionen
Eine Aktion in AHK ist alles, was von außen auf das Betriebssystem einwirkt. AHK hat viele Aktionen. Wir können nicht alle erklären, daher werden wir einige nützliche hervorheben:
- Eingabe senden, ob Text oder Tastendrücke.
- Maus bewegen. AHK wird gelegentlich fälschlicherweise als Cheat-Software für Videospiele bezeichnet, weil sie zur Entwicklung von voll funktionsfähigen Aimbots verwendet wurde.
- Maustaste klicken, mit Positionierung relativ zum aktuellen Fenster.
- Dialogmenüs anzeigen, mit Formularen und Eingabefeldern.
- Fenster verschieben, in der Größe anpassen, öffnen und schließen.
- Musik abspielen.
- In die Windows-Registry schreiben. Ja, wirklich.
- Inhalte der Zwischenablage ändern.
- Dateien lesen und schreiben. Sie können Dateien durchgehen und in jeder Zeile Aktionen ausführen. AHK kann sogar in .ahk-Dateien schreiben und ihren eigenen Code anpassen.
Den meisten dieser Aktionen sind informationsorientierte Befehle zugeordnet. Sie können beispielsweise in die Zwischenablage schreiben, aber auch deren Inhalte in einer Variablen speichern und Funktionen ausführen, wenn sich die Zwischenablage ändert.
Verknüpfung mit Kontrollstrukturen
Ohne die Kontrollstrukturen wäre AHK nicht Turing-vollständig.
Zusätzlich zu den #If-Anweisungen haben Sie auch innerhalb von Aktionsblöcken Zugriff auf If-Anweisungen. AHK hat For-Schleifen, geschweifte Klammern, Try- und Catch-Anweisungen und viele weitere. Innerhalb des Aktionsblocks können Sie auf externe Daten zugreifen und diese in Variablen oder Objekten für den späteren Gebrauch speichern. Sie können benutzerdefinierte Funktionen und Labels definieren. Alles, was man in anderen Programmiersprachen leicht tun kann, ist wahrscheinlich auch in AHK mit ein wenig Aufwand und Hilfe aus der Dokumentation möglich.
Stellen Sie sich zum Beispiel eine langweilige, repetitive Aufgabe vor, bei der Sie nacheinander auf mehrere Schaltflächen klicken und auf eine Antwort des Servers warten müssen, um diese Abfolge endlos zu wiederholen. AHK kann dies automatisieren. Sie definieren Schleifen, die die Maus an bestimmte Stellen bewegen, klicken, zur nächsten Stelle wechseln und erneut klicken. Fügen Sie einige Wait-Anweisungen hinzu, damit nichts kaputt geht. Sie können auch die Farbe der Pixel auf dem Bildschirm lesen, um den Fortschritt zu erkennen.
Eines ist sicher: Ihr Skript wird wahrscheinlich nicht schön sein. Aber AutoHotkey ist es auch nicht, und das ist in Ordnung.