Verwendung des Programms

AutoHotkey macht nichts von alleine; es braucht ein Skript, das ihm sagt, was es tun soll. Ein Skript ist lediglich eine reine Textdatei mit der Dateiendung .ahk, die Instruktionen für das Programm enthält - so ähnlich wie eine Konfigurationsdatei, nur viel mächtiger. Das Wenigste, was ein Skript tun kann, ist eine einzelne Aktion ausführen und sich dann beenden. Die meisten Skripte jedoch definieren eine Reihe von Hotkeys, von denen jeder eine oder mehrere Aktionen ausführt, sobald er gedrückt wird.

#z::Run https://www.autohotkey.com  ; WIN+Z

^!n::  ; STRG+ALT+N
if WinExist("Unbenannt - Editor")
    WinActivate
else
    Run Notepad
return

Tipp: Sofern es Ihr Browser unterstützt, können Sie jeden Codeblock (wie der oben) als Skriptdatei herunterladen, indem Sie den Mauszeiger über den Codeblock bewegen und oben rechts auf die Schaltfläche klicken.

Inhaltsverzeichnis

Ein Skript erstellen

Es gibt mehrere Möglichkeiten, wie man eine Skriptdatei erstellen kann:

Weitere Informationen zum Schreiben eines Skripts finden Sie unter Skriptsprache.

Ein Skript editieren (bearbeiten)

Klicken Sie mit der rechten Maustaste auf die Skriptdatei und wählen Sie Edit Script aus, um ein Skript zum Editieren zu öffnen. Wenn das Skript bereits läuft, können Sie den Edit-Befehl verwenden oder mit der rechten Maustaste auf das Tray-Symbol des Skripts klicken und Edit This Script auswählen. Standardmäßig wird dadurch Notepad geöffnet, allerdings können Sie das durch Ändern eines Registry-Eintrags ändern, wie hier gezeigt. Natürlich können Sie jederzeit Ihren Texteditor starten und dann das Skript wie jede andere Textdatei öffnen.

Nachdem Sie ein Skript editiert haben, müssen Sie das Skript starten oder neu laden, damit die Änderungen wirksam werden. Ein laufendes Skript kann in der Regel über das Tray-Menü neu geladen werden.

Ein Skript starten

Sofern AutoHotkey installiert ist, gibt es mehrere Möglichkeiten, ein Skript zu starten:

Die meisten Skripte haben nur einen Effekt, während sie laufen. Verwenden Sie das Tray-Menü oder den ExitApp-Befehl, um ein Skript zu beenden. Skripte sind auch gezwungen, sich zu beenden, wenn Windows heruntergefahren wird. Um ein Skript nach der Anmeldung des Benutzers automatisch starten zu lassen, ist es am einfachsten, eine Verknüpfung der Skriptdatei im Autostart-Ordner zu platzieren.

Skripte können auch kompiliert werden; das heißt, dass ein Skript zusammen mit einer AutoHotkey-Binärdatei zu einer eigenständigen ausführbaren Datei (.exe) kombiniert werden kann.

Tray-Symbol

Standardmäßig fügt jedes Skript ein eigenes Symbol in den Infobereich der Taskleiste (auch bekannt als Tray) ein.

Das Tray-Symbol sieht normalerweise wie folgt aus (aber die Farbe oder der Buchstabe ändert sich, wenn das Skript pausiert oder suspendiert wird): H

Klicken Sie mit der rechten Maustaste auf das Tray-Symbol, um das Tray-Menü anzuzeigen, das standardmäßig die folgenden Optionen enthält:

Standardmäßig bewirkt ein Doppelklick auf das Tray-Symbol, dass das Hauptfenster des Skripts angezeigt wird.

Der Menu-Befehl kann genutzt werden, um das Tray-Symbol und -Menü individuell anzupassen.

Die #NoTrayIcon-Direktive kann genutzt werden, um das Tray-Symbol zu verstecken.

Hauptfenster

Das Hauptfenster des Skripts ist normalerweise versteckt, aber es kann über das Tray-Symbol oder einen der unten aufgeführten Befehle sichtbar gemacht werden, um Zugang zu Informationen zu erhalten, die für das Debuggen des Skripts nützlich sind. Folgende Elemente, die im View-Menüelement zu finden sind, werden im Hauptfenster angezeigt:

Bekanntes Problem: Die Tastaturkurzbefehle der Menüpunkte funktionieren nicht, wenn das Skript ein Mitteilungsfenster oder ein anderes Dialogfenster anzeigt.

Die interne Variable A_ScriptHwnd enthält die HWND-Nummer (eindeutige ID) des Skript-Hauptfensters.

Schließt man dieses Fenster mit WinClose (auch von einem anderen Skript aus), wird das Skript beendet, aber die meisten anderen Methoden verstecken das Fenster und lassen das Skript laufen.

Wenn das Hauptfenster minimiert wird, wird es automatisch versteckt. Dieses Verhalten ist notwendig, um zu verhindern, dass untergeordnete Fenster (z. B. GUI-Fenster oder einige Dialogfenster) automatisch minimiert werden, und um zu bewirken, dass die Schaltfläche in der Taskleiste des Hauptfensters versteckt wird. Um das Hauptfenster stattdessen normal minimieren zu lassen, überschreiben Sie das Standardverhalten mit OnMessage. Zum Beispiel:

; Dies verhindert, dass das Hauptfenster beim Minimieren versteckt wird:
OnMessage(0x0112, Func("AutoMinimierungVerhindern")) ; WM_SYSCOMMAND = 0x0112
OnMessage(0x0005, Func("AutoMinimierungVerhindern")) ; WM_SIZE = 0x0005
; Dies verhindert, dass untergeordnete GUI-Fenster (außer Dialogfenster) automatisch minimiert werden:
OnMessage(0x0018, Func("AutoMinimierungVerhindern"))

AutoMinimierungVerhindern(wParam, lParam, uMsg, hwnd) {
    if (uMsg = 0x0112 && wParam = 0xF020 && hwnd = A_ScriptHwnd) { ; SC_MINIMIZE = 0xF020
        WinMinimize
        return 0 ; Verhindern, dass das Hauptfenster versteckt wird.
    }
    if (uMsg = 0x0005 && wParam = 1 && hwnd = A_ScriptHwnd) ; SIZE_MINIMIZED = 1
        return 0 ; Verhindern, dass das Hauptfenster versteckt wird.
    if (uMsg = 0x0018 && lParam = 1) ; SW_PARENTCLOSING = 1
        return 0 ; Verhindern, dass untergeordnete Fenster versteckt werden.
}

Titel des Hauptfensters

Der Titel des Skript-Hauptfensters wird von Mechanismen wie #SingleInstance und Reload verwendet, um andere Instanzen desselben Skripts zu identifizieren. Das Ändern des Titels verhindert, dass das Skript als solches identifiziert wird. Welcher Titel standardmäßig verwendet wird, hängt davon ab, wie das Skript geladen wurde:

Geladen ausTitelausdruckBeispiel
.ahk-DateiA_ScriptFullPath " - AutoHotkey v" A_AhkVersionE:\Mein Skript.ahk - AutoHotkey v1.1.33.09
Hauptressource (kompiliertes Skript)A_ScriptFullPathE:\Mein Skript.exe
Jede andere RessourceA_ScriptFullPath " - " A_LineFileE:\Mein AutoHotkey.exe - *INTERNES-TOOL.AHK

Der folgende Code veranschaulicht, wie der Standardtitel mit dem Skript selbst ermittelt werden kann (wobei der tatsächliche Titel mit WinGetTitle abgerufen werden kann):

Titel := A_ScriptFullPath
if !A_IsCompiled
    Titel .= " - AutoHotkey v" A_AhkVersion
; Für ein korrektes Ergebnis muss dies von der auszuführenden Ressource ausgewertet werden,
; nicht von einem #Include (es sei denn, das #Include wurde von Ahk2Exe in das Skript eingebunden):
else if SubStr(A_LineFile, 1, 1) = "*" && A_LineFile != "*#1"
    Titel .= " - " A_LineFile

Eingebettete Skripte [v1.1.34+]

Um Skripte in eine Standard-AutoHotkey-EXE-Datei einzubetten, fügen Sie mithilfe des Ahk2Exe-Compilers die Skripte als Win32-Ressourcen (RCDATA) hinzu. Mit der AddResource-Compiler-Direktive können Sie weitere Skripte hinzufügen.

Ein eingebettetes Skript kann in der Befehlszeile angegeben werden, oder mit #Include durch Angabe eines Sternchens (*) gefolgt vom Ressourcennamen. Handelt es sich um eine Integer-ID, muss der Ressourcenname ein Rautezeichen (#) gefolgt von einer Dezimalzahl sein.

Das Programm kann automatisch Skriptcode aus den folgenden Ressourcen laden, wenn diese in der Datei vorhanden sind:

IDAngabeVerwendung
1*#1 Dies ist das Mittel, mit dem ein kompiliertes Skript aus einer EXE-Datei erstellt wird. Dieses Skript wird automatisch ausgeführt, und die meisten Befehlszeilenoptionen werden an das Skript übergeben, anstatt vom Programm interpretiert zu werden. Externe Skripte und alternative eingebettete Skripte können mit der Befehlszeilenoption /script ausgeführt werden.
2*#2 Wenn vorhanden, wird dieses Skript automatisch vor jedem Skript, das das Programm lädt, und vor jeder mit /include angegebenen Datei "eingebunden".

Wenn die Quelle des Hauptskripts eine eingebettete Ressource ist, verhält sich das Programm im Modus "kompiliertes Skript", mit der Ausnahme, dass A_AhkPath immer den Pfad der aktuellen EXE-Datei enthält (derselbe wie A_ScriptFullPath). Bei anderen Ressourcen außer *#1 wird der Ressourcenbezeichner in den Titel des Hauptfensters eingefügt, um #SingleInstance und Reload zu unterstützen.

Wenn A_LineFile von einem Code referenziert wird, der aus einer eingebetteten Ressource stammt, enthält es ein Sternchen (*), gefolgt von dem Ressourcennamen.

Verwendung der Befehlszeile

Weitere Informationen zur Verwendung der Befehlszeile finden Sie unter Befehlszeilenparameter an ein Skript übergeben, einschließlich einer Liste von Befehlszeilenoptionen, die das Verhalten des Programms beeinflussen.

Portabilität von AutoHotkey.exe

Die Datei AutoHotkey.exe ist alles, was man braucht, um ein beliebiges .ahk-Skript zu starten.

[AHK_L 51+]: Das Umbenennen von AutoHotkey.exe ändert auch die Tatsache, welches Skript standardmäßig ausgeführt wird. Diese Methode kann als Alternative dienen, um ein Skript zu kompilieren, das auf einem Computer ohne installiertem AutoHotkey verwendet werden kann. Zum Beispiel führt MeinSkript.exe automatisch MeinSkript.ahk aus, wenn kein Dateiname angegeben ist.

Installer-Optionen

Um AutoHotkey automatisch in das Standardverzeichnis zu installieren (das gleiche Verzeichnis, das im Nicht-Silent-Modus angezeigt wird), starten Sie den Installer mit dem /S-Parameter. Zum Beispiel:

AutoHotkey_1.1.34.03_setup.exe /S

Mit dem /D-Parameter kann ein benutzerdefiniertes Standardverzeichnis angegeben werden (lässt man /S weg, würde /D das im Installer angezeigte Standardverzeichnis ändern). Zum Beispiel:

AutoHotkey_1.1.34.03_setup.exe /S /D=C:\Program Files\AutoHotkey

Version: Falls AutoHotkey bereits installiert wurde, erkennt der Installer automatisch, welche Version von AutoHotkey.exe standardmäßig gesetzt werden soll. Ansonsten wird standardmäßig Unicode 32-Bit verwendet, oder Unicode 64-Bit, wenn das Betriebssystem im 64-Bit-Format ist. Um die standardmäßig gesetzte Version von AutoHotkey.exe zu überschreiben, übergeben Sie einen der folgenden Parameter:

Das folgende Beispiel installiert AutoHotkey automatisch und setzt ANSI 32-Bit als Standardversion:

AutoHotkey_1.1.34.03_setup.exe /S /A32

Deinstallieren: Um AutoHotkey automatisch zu deinstallieren, starten Sie Installer.ahk mit dem Parameter /Uninstall. Zum Beispiel:

"C:\Programme\AutoHotkey\AutoHotkey.exe" "C:\Programme\AutoHotkey\Installer.ahk" /Uninstall

In Versionen älter als 1.1.08.00 muss uninst.exe /S verwendet werden. Zum Beispiel:

"C:\Programme\AutoHotkey\uninst.exe" /S

Hinweis: Installer.ahk muss mit Administratorrechten ausgeführt werden, um korrekt zu funktionieren.

Extrahieren [v1.1.09.04+]: In der unteren rechten Ecke der GUI des Installers befindet sich ein Link zum Extrahieren der Dateien ohne Installation. Alternativ kann die Befehlszeilenoption /E verwendet werden. Zum Beispiel:

AutoHotkey_1.1.34.03_setup.exe /D=F:\AutoHotkey /E

Skripte neustarten [v1.1.19.02+]: Im automatischen Install/Uninstall-Modus werden laufende Skripte automatisch geschlossen, wo immer es notwendig ist. Übergeben Sie die /R-Option ohne zusätzliche Befehlszeilenparameter, um diese Skripte automatisch neu zu laden, egal mit welcher EXE-Datei sie gerade ausgeführt werden. Das Setup wird versuchen, die Skripte über den Explorer zu starten, damit sie ohne Administratorrechte laufen, wenn UAC aktiv ist.

Taskleistenschaltflächen [v1.1.08+]: Ab Windows 7 werden Taskleistenschaltflächen von mehreren Skripten automatisch gruppiert oder standardmäßig zu einer Schaltfläche zusammengefasst. Die Option Separate taskbar buttons (Separate Taskleistenschaltflächen) deaktiviert dieses Verhalten, indem sie jede ausführbare AutoHotkey-Datei als Host-App (IsHostApp) registriert.

[v1.1.24.02+]: Installationen via Befehlszeile können /IsHostApp oder /IsHostApp=1 benutzen, um die Option zu aktivieren, und /IsHostApp=0, um sie zu deaktivieren.

Mit UI-Access starten [v1.1.24.02+]

Die Installer-GUI verfügt über die Option "Add 'Run with UI Access' to context menus" ('Mit UI-Access ausführen' in das Kontextmenü einfügen). Diese Kontextmenü-Option kann häufig auftretende UAC-bezogene Probleme umgehen, damit das Skript administrative Programme automatisieren kann - ohne dass das Skript mit Administratorrechten laufen muss. Um das zu erreichen, wird der Installer Folgendes tun:

Wenn irgendeine dieser UIA-Dateien vor der Installation vorhanden sein sollte, wird der Installer sie automatisch aktualisieren, selbst wenn die uiAccess-Option inaktiv ist.

Installationen via Befehlszeile können /uiAccess oder /uiAccess=1 benutzen, um die Option zu aktivieren, und /uiAccess=0, um sie zu deaktivieren. Standardmäßig wird der Installer die Option aktivieren, wenn UAC aktiv ist und wenn die UI-Access-Kontextmenü-Option vor der Installation vorhanden war.

Skripte, die andere Skripte mit UI-Access ausführen müssen, können einfach Run benutzen, um die entsprechende UIA.EXE-Datei mit den normalen Befehlszeilenparametern auszuführen.

Bekannte Einschränkungen:

Schauen Sie sich Enable interaction with administrative programs (Interaktion mit administrativen Programmen ermöglichen) im Archiv-Forum an, um mehr zu erfahren.