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.
AutoHotkey | |
---|---|
Basisdaten | |
Entwickler | Chris Mallett (Chris), Steve Gray (Lexikos) |
Aktuelle Version | 2.0.11[1] (23. Dezember 2023) |
Betriebssystem | Windows |
Programmiersprache | C++[2] |
Kategorie | Skriptsprache |
Lizenz | GNU General Public License |
deutschsprachig | ja |
www.autohotkey.com |
Ü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[3]. 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:
MsgBox Hallo Welt!
Das Skript startet das Programm Notepad, wartet, bis das Fenster aktiv ist und tippt dort Hallo Welt! ein:
Run, "notepad.exe"
WinWaitActive, ahk_class Notepad
Send, Hallo Welt{!}
Durch das Drücken der Tastenkombination Strg+Alt+W wird ein markiertes Wort bei Wikipedia nachgeschlagen:
^!w::
alteZwischenablage := ClipboardAll
Send, ^c
InternetAnfrage := "http://de.wikipedia.org/w/index.php?title="
. "Spezial%3ASuche&search=" . Clipboard
Clipboard := alteZwischenablage
Run, % InternetAnfrage
Return
Die Abkürzung „MfG“ wird durch einen Hotstring nach der Eingabe zu „Mit freundlichen Grüßen“:
::MfG::Mit freundlichen Grüßen
Deaktiviert auf dem Desktop das Mausrad und damit versehentliches Zoomen:
#IfWinActive, ahk_class Progman
*WheelDown::Return
*WheelUp::Return
Ausgabe einiger Systeminfos in einer selbst definierten Oberfläche:
Gui, Font, s10, Verdana
Gui, Add, Text, +Center , % "Hallo " A_UserName "`n"
. "Du nutzt ein " A_OSType "-System`n"
. "(Variante " A_OSVersion ")"
Gui, Add, Button, wp gGuiClose, Beenden
Gui, Show, WikiDemo - User/OS Info
Return
GuiClose:
GuiEscape:
ExitApp
IBAN-Prüfsumme berechnen:
IBAN = GB82 WEST 1234 5698 7654 32
;Leerräume entfernen, Kleinbuchstaben vergrößern
StringUpper, I,% RegexReplace(IBAN, "\s")
;die ersten vier Zeichen an das Ende verschieben
I := SubStr(I, 5) SubStr(I, 1, 4), M := ""
Loop, Parse, I
{ ;Buchstaben zu Zahlen: A zu 10, B zu 11 ...
If A_LoopField is Alpha
M .= Asc(A_LoopField) - 55
Else
M .= A_LoopField
M := Mod(M, 97) ;Modulo 97
} ;schlussendlich muss M = 1 sein, ansonsten ist die IBAN falsch
MsgBox,,IBAN-Prüfsumme ist:,% (M = 1)?"richtig":"falsch"
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.
Siehe auch
Weblinks
- Offizielle AutoHotkey-Website (englisch)
- Deutsche AutoHotkey-Website
- Sammlung von AutoHotkey Basic-Skripten unter einer gemeinsamen Benutzeroberfläche, Projekt der Zeitschrift c’t
- Awesome AutoHotkey, Linksammlung auf GitHub
- AutoHotkey Community
Quellen
- Geschichte von AutoHotkey (englisch)
- AutoIt und OpenSource (englisch)
- Liste der AutoIt-Befehle in AutoHotkey (englisch)
- Kommerzielle Verwertung eigener Skripte und Vergleiche Freeware / OpenSource (englisch)
- AutoHotkey-Decompiler-Nutzung (englisch)
- Erklärung von Chris Mallet über die Zukunft von AutoHotkey (englisch)
Einzelnachweise
- Release 2.0.11. 23. Dezember 2023 (abgerufen am 19. Januar 2024).
- The autohotkey Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Oktober 2018).
- AutoKey. autokey, 5. April 2022, abgerufen am 6. April 2022.