AutoHotkey

AutoHotkey

Basisdaten

Entwickler Chris Mallett (Chris),
Steve Gray (Lexikos)
Erscheinungsjahr 2004
Aktuelle Version 2.0.18[1]
(6. Juli 2024)
Betriebssystem Windows
Programmier­sprache C++[2]
Kategorie Skriptsprache
Lizenz GNU General Public License
deutschsprachig ja
www.autohotkey.com

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.[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:

Demo
 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.

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.[4]

Siehe auch

Quellen

Einzelnachweise

  1. Release 2.0.18. 6. Juli 2024 (abgerufen am 6. Juli 2024).
  2. The autohotkey Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Oktober 2018).
  3. AutoKey. autokey, 5. April 2022, abgerufen am 6. April 2022.
  4. joedf: AutoHotkey v2 Official Release Announcement. In: Board AutoHotkey - Announcements. AutoHotkey Foundation LLC, 22. Januar 2023, abgerufen am 11. August 2024 (englisch).