AutoHotkey – Schnelles UI-Prototyping mit minimalen Executables
AutoHotkey ist eine kostenlose, quelloffene Skriptsprache für Windows, die ursprünglich zur Tastatur- und Mausautomatisierung entwickelt wurde. Sie eignet sich hervorragend für die schnelle Erstellung von grafischen Benutzeroberflächen und kompakten ausführbaren Dateien.
Die einzigen Voraussetzungen sind ein Windows-Betriebssystem ab Version 7 sowie die Installation der AutoHotkey-Laufzeitumgebung. Es werden keine zusätzlichen Frameworks, Laufzeitbibliotheken oder Entwicklungsumgebungen benötigt. Die Installation umfasst lediglich wenige Megabyte.
Funktionalität
AutoHotkey arbeitet mit einfachen Textskripten, die von der AutoHotkey.exe interpretiert werden. Ein Skript kann Hotkeys, Hotstrings oder eine vollständige Benutzeroberfläche definieren. Für die GUI-Erstellung stellt AutoHotkey den Gui-Befehl bereit, mit dem man Fenster und Steuerelemente wie Textfelder, Buttons oder Checkboxen erzeugt. Dazu wird ein Gui-Objekt instanziiert, dem man schrittweise Steuerelemente hinzufügt und anschließend mit Show() anzeigt.
Man sollte auf jeden Fall AutoHotkey v2 verwenden. Die Version 1 wird nicht mehr weiterentwickelt und v2 bietet eine konsistentere Syntax, bessere Sicherheit und moderne Sprachfeatures. Die Syntax von v2 weist einige Besonderheiten auf. Zuweisungen erfolgen mit :=, Vergleiche mit = oder ==. Variablennamen sind case-insensitive, Funktionsnamen ebenfalls. Es gibt keine legacy Kommando-Syntax mehr wie in v1, stattdessen verwendet man durchgängig Funktionen und Objekte. Dadurch ist der Code leichter zu lesen, aber viele ältere Skripte aus v1 müssen angepasst werden.
Der eigentliche Vorteil liegt in der Geschwindigkeit: Mit wenigen Zeilen Code entsteht eine funktionale Oberfläche, die direkt getestet werden kann. Für die Verteilung kompiliert man das Skript mit dem mitgelieferten Ahk2Exe-Tool zu einer eigenständigen .exe-Datei. Diese enthält den Interpreter und das Skript in einer einzigen Binärdatei.
Pro und Kontra
Pro
- Schnelles Prototyping von UIs, oft in unter einer Minute
- Super schnelle Startuptime
- Kompilierte Executables sind außergewöhnlich klein. Eine minimale .exe liegt bei etwa 800 KB, mit NTFS-Kompression sogar bei rund 350 KB
- Keine Abhängigkeiten, die EXE läuft auf jedem Windows-System
- Bei Bedarf lassen sich andere Programme oder Skripte per Run-Befehl aus dem AHK-Skript heraus starte
Kontra
- AutoHotkey ist auf Windows beschränkt; es existiert keine Linux- oder macOS-Version
- Der Sprachumfang ist begrenzt. Für komplexe Datenverarbeitung, Netzwerkprotokolle oder rechenintensive Aufgaben stößt man schnell an Grenzen
- Sicherheitssoftware und einige Spiele erkennen AutoHotkey-Skripte als potenziell unerwünscht
- AutoHotkey arbeitet single-threaded, was bei parallelen Aufgaben zu Verzögerungen führen kann
Das folgende Skript erstellt ein kleines Eingabefenster mit einem Textfeld und einem Button. Beim Klick auf den Button wird der eingegebene Text in einer MessageBox angezeigt.
#Requires AutoHotkey v2.0
; GUI-Objekt mit Titel erstellen
meineGui := Gui(, "Schnelle Eingabe")
; Textlabel hinzufügen
meineGui.AddText(, "Bitte einen Wert eingeben:")
; Eingabefeld mit Variablennamen ed1 hinzufügen
meineGui.AddEdit("w230 vWert")
; Button hinzufügen und Klick-Event verknüpfen
meineGui.AddButton("Default w80", "OK").OnEvent("Click", zeigeWert)
; Fenster anzeigen
meineGui.Show()
; Funktion, die beim Klick ausgeführt wird
zeigeWert(*) {
gespeichert := meineGui.Submit()
MsgBox(gespeichert.Wert, "Eingabe", "Iconi")
}
Für schnelle interne Tools, Prototypen und kleine Automatisierungsaufgaben unter Windows ist AutoHotkey eine hervorragende Wahl. Die Kombination aus minimaler Executable-Größe und der Möglichkeit, bei Bedarf externe Programme aufzurufen, macht es besonders für Szenarien interessant, in denen man eine leichtgewichtige UI benötigt, ohne eine vollständige Entwicklungsumgebung aufzusetzen. Für plattformübergreifende Anwendungen oder Projekte mit komplexer Datenverarbeitung sollte man hingegen auf andere Werkzeuge zurückgreifen.
Die offizielle Dokumentation mit ausführlichen Beispielen und Referenzen findet man unter autohotkey.com. Das GitHub-Repository mit dem Quellcode und dem Compiler Ahk2Exe ist unter github.com/AutoHotkey/AutoHotkey erreichbar.