# AutoHotkey

AutoHotkey, kurz AHK, ist eine Skriptsprache und ein zugehöriger Interpreter, mit denen man insbesondere die Windows-Benutzeroberfläche steuern und sich wiederholende Arbeitsaufgaben unter Windows automatisieren, aber auch viele andere Zwecke erfüllen kann. In den aktuellen Versionen kommt AutoHotkey einer voll ausgestatteten Programmiersprache nahe. AutoHotkey ist eine freie Software.

## Überblick

AutoHotkey läuft unter Windows 2000 oder höher. Unter Windows 95/98/Me funktioniert es mit einigen Einschränkungen.
Die englische und auch deutsche Dokumentation enthält ein Tutorial und zu jedem Befehl komplette Programmbeispiele oder zumindest konkrete Anwendungsfälle, wodurch der Einstieg in die Sprache vereinfacht ist.
Für Linux gibt es ein von AutoHotkey inspiriertes Projekt namens Autokey. Die Skripte sind jedoch nicht kompatibel.

## Anwendungsgebiete

AutoHotkey ist dafür gedacht, sich wiederholende Arbeitsaufgaben zu automatisieren. Mit AHK-Skripten kann man beispielsweise
* in einem Text markierte Begriffe in der Wikipedia oder einem Wörterbuch nachschlagen,
* Informationen aus nicht miteinander kompatiblen Datensammlungen (z. B. proprietären Datenbanken und Excel-Tabellen) zusammenführen,
* Programme durch automatische Texteingaben oder Mausklicks (die z. B. abhängig vom aktuellen Fensterinhalt simuliert werden) steuern.
Mit AutoHotkey lassen sich sowohl systemweit gültige als auch programmspezifische Tastenkombinationen und Funktionen zuweisen. So kann man z. B.
* die Tastaturbelegung nach Wunsch ändern,
* die Ansteuerung der Maus oder einzelner ihrer Funktionen auf die Tastatur übertragen,
* mit einem Tastendruck Webseiten aufrufen (unabhängig davon, ob der Webbrowser aktiv ist),
* Hotstrings (AHK-Begriff für selbst definierte Abkürzungen) bei Texteingaben automatisch durch einen anderen (meist längeren) Text ersetzen.
Fortgeschrittene können mit AutoHotkey grafische Benutzeroberflächen (GUI) erstellen, mit Regulären Ausdrücken arbeiten (PCRE) oder Funktionen in DLLs von Windows oder Anwendungsprogrammen aufrufen.

## Besonderheiten

Es ist möglich, AutoHotkey-Skripte in eigenständig lauffähige Programme zu kompilieren. Diese Programme können somit auch auf Windows-Rechnern ohne AutoHotkey-Installation ausgeführt werden. Ein entsprechender Compiler ist Bestandteil des AutoHotkey-Programmpakets. Skripte wie auch kompilierte Programme unterliegen nicht der vom Entwickler vorgesehenen Lizenz und dürften somit auch als eigenständige Programme verkauft werden. Beim Kompilierungsvorgang lässt sich ein Passwort angeben (bis Version 1.1). Damit lässt sich das Programm vor dem einfachen Rückumwandeln in Quelltext (Dekompilieren) schützen, solange das Passwort nicht bekannt ist. Der so erreichte Schutz entspricht jedoch nicht dem eines binär kompilierten Programms. Um diesen falschen Eindruck nicht zu erwecken, unterstützen neuere Versionen (ab Version 1.1) den Passwortschutz nicht mehr.
Im Programmpaket finden sich noch die Tools
* AutoScriptWriter, ein Makro-Rekorder. Registriert Tastatureingaben, Mausklicks und identifiziert das momentan aktive Fenster. Er setzt diese Aktionen in ein ablauffähiges AHK-Skript um, das später mit höherer Geschwindigkeit „abgespielt“ werden kann.
* AU3_Spy, das umfangreiche Informationen zum gerade aktiven Fenster liefert (Fenstertitel, Fenstertext, Namen von Schaltflächen, Inhalt von Eingabefeldern usw.). Die Informationen helfen oft bei der Identifizierung, Auswertung und Steuerung von Fenstern / Dialogfeldern sowie beim Debuggen.

## AutoHotkey-Programmbeispiele

Das Skript gibt „Hallo Welt!“ in einer MessageBox aus:
Das Skript startet das Programm Notepad, wartet, bis das Fenster aktiv ist und tippt dort Hallo Welt! ein:
Durch das Drücken der Tastenkombination Strg+Alt+W wird ein markiertes Wort bei Wikipedia nachgeschlagen:
Die Abkürzung „MfG“ wird durch einen Hotstring nach der Eingabe zu „Mit freundlichen Grüßen“:
Deaktiviert auf dem Desktop das Mausrad und damit versehentliches Zoomen:
Ausgabe einiger Systeminfos in einer selbst definierten Oberfläche:
IBAN-Prüfsumme berechnen:

## Geschichte

Der Programmierer Chris Mallett begann die Arbeit an AutoHotkey im Jahr 2003. Grund dafür war, dass die von ihm gewünschte Hotkey-Unterstützung für das damals unter der GNU General Public License stehende Programm AutoIt2 zu diesem Zeitpunkt nicht existierte und auch nicht geplant war.
Version 1.0 von AutoHotkey wurde im Februar 2004 veröffentlicht. AutoHotkey kann AutoIt2-Skripte ausführen, und circa 40 AutoHotkey-Befehle basieren direkt auf dem Quellcode von AutoIt. Einige AutoHotkey beigelegte Hilfsprogramme (u. a. der Compiler) stammen ebenfalls aus AutoIt.
AutoIt ist inzwischen kein Open-Source-Programm mehr.
Am 10. Oktober 2010 erklärte der Entwickler Chris Mallet, dass er AutoHotkey nicht mehr aktiv weiterentwickeln werde. Er habe das Interesse verloren, weil er, im Gegensatz zu anderen aktiven Entwicklern, die Skriptsprache nie zu einer voll ausgestatteten Programmiersprache ausbauen wollte. Auf der Download-Seite wird nun eine direkte Weiterentwicklung, die von einigen Mitgliedern der Community entwickelt wurde, als Download für AutoHotkey angeboten. Dieser offizielle Nachfolger trägt den Namen AutoHotkey 1.1 und bietet neben 64-Bit-Unterstützung auch Unterstützung für Unicode, Arrays und Objekte. Die Originalversion, nun AutoHotkey Basic genannt, verfügt nicht über diese erweiterten Funktionalitäten.
2012: AutoHotkey_L wurde die offizielle Version. „Chris“ übergibt die Besitzrechte der Domain www.autohotkey.com an „polyethene“.
24. April 2014: Die „AutoHotkey Foundation LLC“ wird gegründet, neue offizielle AutoHotkey-Webseite ist ahkscript.org.
22. September 2015: Einigung mit „polyethene“. Übergabe der Domain autohotkey.com. Diese wird vollständig in einen neuen Server migriert.
22. Januar 2024: AutoHotkey 2.0 ist nun die offizielle Hauptversion und bringt zahlreiche Verbesserungen gegenüber früheren Versionen mit sich. Die Entwicklung wird künftig auf 2.0 fokussiert, während 1.x als veraltet gilt, aber weiterhin genutzt werden kann. Die AHK-Community unterstützt den Übergang zu 2.0, das eine vereinfachte Syntax (die jedoch nicht mehr abwärtskompatibel ist) verbesserte Fehlermeldungen und neue Tools wie die Launcher- und Dash-App besitzt.