Häufig gestellte Fragen (FAQ)

Inhaltsverzeichnis

Sprachsyntax

Allgemeine Problembehandlung

Allgemeine Aufgaben

Hotkeys, Hotstrings und Neubelegung

Sprachsyntax

Wann werden Anführungszeichen bei Befehlen und ihren Parametern benutzt?

Doppelte Anführungszeichen (") haben nur innerhalb von Ausdrücken eine besondere Bedeutung. Überall woanders werden sie als normale Zeichen behandelt. Wenn ein Skript allerdings ein Programm oder Dokument startet, müssen eventuell vorhandene Befehlszeilenparameter, die Leerzeichen enthalten, in Anführungszeichen gesetzt sein, damit das Betriebssystem sie richtig erkennen kann. Zum Beispiel: Run, Notepad.exe "C:\Meine Dateien\Adressenliste.txt".

Wann genau werden Variablen mit Prozentzeichen umschlossen (%)?

Variablennamen werden immer mit Prozentzeichen umschlossen, außer in den unteren Fällen, die fett hervorgehoben sind:

Weitere Informationen zur Verwendung von Prozentzeichen finden Sie unter Altmodische Syntax und Dynamische Variablen. Prozentzeichen können auch andere Bedeutungen haben:

Wann sollten Prozentzeichen und Kommas mit einem Escapezeichen versehen werden?

Direkt geschriebene Prozentzeichen müssen mit einem Escapezeichen versehen werden, indem man ein Akzent / umgekehrtes Häkchen davorsetzt. Zum Beispiel: MsgBox Der aktuelle Prozentwert liegt bei 25`%. Direkt geschriebene Kommas müssen auch mit einem Escapezeichen versehen werden (`,), es sei denn, sie werden in einer MsgBox oder im letzten Parameter eines Befehls verwendet (dann ist das umgekehrte Häkchen zulässig, aber nicht notwendig).

Sind Kommas oder Prozentzeichen innerhalb eines Ausdrucks in Anführungszeichen gesetzt, ist das umgekehrte Häkchen zulässig, aber nicht notwendig. Zum Beispiel: Var := "15%".

Allgemeine Problembehandlung

Was kann ich tun, wenn AutoHotkey nicht installiert wird?

7-Zip-Fehler: Verwenden Sie 7-Zip oder ein kompatibles Programm, um die Setup-Dateien aus der Installer-EXE zu extrahieren und starten Sie dann setup.exe oder Installer.ahk (ziehen Sie Installer.ahk mit gedrückter Maustaste auf AutoHotkeyU32.exe und lassen Sie los).

Der AutoHotkey-Installer ist ein selbstextrahierendes 7-Zip-Archiv, das versuchen wird, die Dateien in das temporäre Benutzerverzeichnis zu entpacken und ein kompiliertes Skript zu starten. Manchmal kann es vorkommen, dass die Dateien aufgrund von Systemrichtlinien oder andere Faktoren nicht extrahiert oder ausgeführt werden dürfen. Dabei wird üblicherweise ein "7-Zip-Fehler" angezeigt. In so einem Fall könnte es helfen, die Dateien manuell in ein anderes Verzeichnis zu extrahieren.

Setup hängt: Erscheint das Setup-Fenster ohne Inhalt oder überhaupt nicht, können Sie eine oder beide folgende Methoden ausprobieren:

Sonstiges: Die obigen Vorschläge decken die häufigsten Probleme. Weitere Unterstützung finden Sie im Forum.

Wie stelle ich die Kontextmenüoptionen für .ahk-Dateien wieder her?

Normalerweise, wenn AutoHotkey installiert ist, sollte ein Rechtsklick auf eine AutoHotkey-Skriptdatei (.ahk) die folgenden Optionen bieten:

Manchmal werden diese Optionen durch Einstellungen im Profil des aktuellen Benutzers überschrieben, z. B. wenn Öffnen mit verwendet wurde, um das Standardprogramm zum Öffnen von .ahk-Dateien zu ändern. Um das zu beheben, können Sie den folgenden Registry-Schlüssel löschen:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ahk\UserChoice

Oder diesen Registry-Patch ausführen.

Es ist eventuell auch notwendig, die Standardwerte in der Registry zu reparieren, indem Sie entweder AutoHotkey neu installieren oder das AutoHotkey-Setup (aus dem Startmenü) ausführen und apply oben im Fenster auswählen.

Warum werden einige Zeilen in meinem Skript nie ausgeführt?

Um bestimmte Zeilen sofort beim Start des Skripts auszuführen, fügen Sie diese am Anfang des Skripts ein, noch vor dem ersten Hotkey, Hotstring oder Return. Weitere Informationen finden Sie unter automatischer Ausführungsbereich.

Die erste auszuführende Zeile eines Hotkeys darf nicht neben der Definition stehen, sondern muss darunter erfolgen. Zum Beispiel:

#space::  ; WIN+LEERTASTE
Run Notepad
WinWaitActive Unbenannt - Editor
WinMaximize
return

Warum funktioniert mein Skript nicht in Windows xxx, obwohl es in einer vorherigen Version lief?

Dieses Problem tritt in mehreren Varianten auf:

Wenn Sie auf ein anderes Betriebssystem gewechselt haben, kann es sein, dass sich auch etwas geändert hat, das Einfluss auf Ihr Skript haben kann. Wenn Sie zum Beispiel einen neuen Computer haben, können andere Treiber oder Software installiert sein. Wenn Sie AutoHotkey auf eine neue Version aktualisiert haben, finden Sie heraus, welche Version zuvor installiert war, und überprüfen Sie dann die Changelog und Kompatibilitätshinweise auf Änderungen, die Ihr Skript stören könnten.

SoundGet, SoundSet, SoundGetWaveVolume und SoundSetWaveVolume verhalten sich in Windows Vista und höher anders als in älteren Windows-Versionen. Das liegt vor allem daran, dass die Nummerierung der Geräte unterschiedlich ist und dass einige Komponenten eventuell nicht verfügbar sind. Das Verhalten richtet sich nach den Audio-Treibern, die zwangsläufig anders sind als die von XP. Mit dem Soundkartenanalyse-Skript können die korrekten Gerätenummern ermitteln werden.

Siehe auch die folgende Frage:

Wie umgehe ich Probleme, die von der Benutzerkontensteuerung (UAC) erzeugt werden?

Aus Sicherheitsgründen verhindert die Benutzerkontensteuerung (UAC), dass "höhergestellte" Programme (also Programme mit Administratorrechten) von anderen nicht-höhergestellten Programmen automatisiert werden können. Hotkeys werden auch blockiert; zum Beispiel kann ein nicht-höhergestelltes Programm die Tastatureingaben eines höhergestellten Programms nicht ausspionieren.

UAC könnte sich auch negativ auf SendPlay und BlockInput auswirken.

Es gibt folgende Übergangslösungen:

Ich kann mein Skript nicht über das Tray-Symbol editieren, weil es sich aufgrund eines Fehlers nicht starten lässt. Was soll ich tun?

Sie müssen den Fehler in Ihrem Skript beheben, wenn Sie das Tray-Symbol zurückhaben wollen. Aber zuerst müssen Sie die Skript-Datei finden.

Suchen Sie AutoHotkey.ahk in den folgenden Verzeichnissen:

Führt man die ausführbare Hauptdatei von AutoHotkey direkt aus, wird automatisch ein Skript gestartet, das den gleichen Namen trägt. Wenn man beispielsweise AutoHotkeyU32.exe ausführt, muss man nach AutoHotkeyU32.ahk suchen. Beachten Sie, dass je nach Systemeinstellung die .ahk-Endung versteckt sein könnte, allerdings sollte die Datei ein Symbol haben, das wie folgt aussieht: [H]

Ein Skript editiert man üblicherweise, indem man die Datei mit der rechten Maustaste anklickt und Edit Script auswählt. Wenn das nicht funktioniert, können Sie die Datei in einem beliebigen Texteditor öffnen.

Wenn man AutoHotkey über das Startmenü startet oder wenn man AutoHotkey.exe direkt ausführt (ohne Befehlszeilenparameter), wird nach einem Skript gesucht, das in den oben genannten Standorten vorkommt. Oder man erstellt einfach eine Skriptdatei (beliebigerName.ahk), egal wo, und führt diese stattdessen aus.

Siehe auch Befehlszeilenparameter "Skript-Dateiname" und Portabilität von AutoHotkey.exe.

Wie kann ich Fehler in meinem Code finden und beheben?

Für einfache Skripte, siehe Ein Skript debuggen. Mit MsgBox oder ToolTip können Inhalte einer Variable angezeigt werden. Für komplexe Skripte, siehe Interaktives Debuggen.

Warum kann der Run-Befehl mein Videospiel oder Programm nicht ausführen?

Einige Programme müssen in ihren eigenen Verzeichnissen gestartet werden (im Zweifelsfall der sicherste Weg). Zum Beispiel:

Run, %ProgramFiles%\Beliebige Anwendung\Anwendung.exe, %ProgramFiles%\Beliebige Anwendung

Wenn man versucht, ein Programm zu starten, das im Ordner %A_WinDir%\System32 liegt, und die 32-Bit-Version von AutoHotkey auf einem 64-Bit-System benutzt, kann es passieren, dass der File System Redirector Probleme bereiten wird. Um das zu umgehen, können Sie stattdessen %A_WinDir%\SysNative verwenden; dieser Pfad führt zu einem virtuellen Verzeichnis, das nur 32-Bit-Programme in einem 64-Bit-System sehen können.

Warum werden ASCII-fremde Zeichen in meinem Skript falsch dargestellt oder gesendet?

Kurze Antwort: Speichern Sie das Skript als UTF-8 mit BOM.

Obwohl AutoHotkey Unicode-Text unterstützt, ist es auf Abwärtskompatibilität ausgelegt; das heißt, dass es standardmäßig die ANSI-Codierung bevorzugt, und nicht das international empfohlene UTF-8. AutoHotkey wird eine UTF-8-Datei nicht automatisch erkennen, es sei denn, sie beginnt mit einer Byte-Order-Markierung.

Mit anderen Worten: UTF-8-Dateien, die keine Byte-Order-Markierung haben, werden fehlinterpretiert, was dazu führt, dass ASCII-fremde Zeichen falsch dekodiert werden. Um das zu umgehen, müssen Sie die Datei als UTF-8 mit BOM abspeichern oder die Befehlszeilenoption /CP65001 hinzufügen.

Um in Notepad eine Datei als UTF-8 mit BOM abzuspeichern, wählen Sie UTF-8 in der DropDown-Liste für Codierung aus, die im Dialogfenster "Speichern unter" zu finden ist.

Um andere UTF-8-Dateien ohne Byte-Order-Markierung zu lesen, können Sie FileEncoding UTF-8-RAW, die *P65001-Option mit FileRead oder "UTF-8-RAW" im dritten Parameter von FileOpen() verwenden. Das -RAW-Suffix kann weggelassen werden, aber in diesem Fall haben alle neu erstellten Dateien eine Byte-Order-Markierung.

Beachten Sie, dass INI-Dateien, die mit den Standard-INI-Befehlen angesteuert werden, kein UTF-8 unterstützen; sie müssen als ANSI oder UTF-16 gespeichert werden.

Warum funktionieren Hotstrings, Sends und Clicks in einigen Videospielen nicht?

Einige Videospiele verbieten AHK, Tasten und Mausklicks zu senden oder Pixelfarben zu lesen.

Allerdings gibt es weiter unten ein paar Alternativen, die man ausprobieren kann. Wenn sie alle fehlschlagen, könnte es sein, dass AHK nicht für Ihr Videospiel geeignet ist. Manche Videospiele haben Maßnahmen gegen Hacks und Cheats integriert, wie z. B. GameGuard und Hackshield. In diesem Fall besteht eine hohe Chance, dass AutoHotkey nicht funktionieren wird.

Wie kann die Leistung bei Videospielen bzw. in Situationen, wo die CPU stark belastet wird, verbessert werden?

Sind Hotkeys, Clicks oder Sends im Skript bei starker CPU-Belastung spürbar langsamer als normal, könnte es hilfreich sein, die Priorität des Skript-Prozesses zu erhöhen. Fügen Sie dazu die folgende Zeile am Anfang des Skripts ein:

Process, Priority, , High

Mein Antivirus-Programm hat AutoHotkey oder ein kompiliertes Skript als Malware erkannt. Ist das wirklich ein Virus?

Es kann zwar nie ganz kann ausgeschlossen werden, dass die Datei infiziert ist, aber in den meisten Fällen sind solche Warnungen False-Positives (Falschmeldungen); das heißt, dass das Antivirus-Programm falsch liegt. Häufig wird vorgeschlagen, die Datei bei einem Online-Service wie virustotal oder Jotti hochzuladen und zu überprüfen, was andere Antivirus-Programme zu sagen haben. Im Zweifelsfall können Sie die Datei zum Hersteller Ihres Antivirus-Programms schicken und ihre Echtheit bestätigen lassen. Das würde auch uns und anderen AutoHotkey-Benutzern helfen, weil der Hersteller die Datei als False-Positive anerkennen und sein Produkt entsprechend anpassen würde.

False-Positives können häufiger auftreten, wenn kompilierte Skripte mit UPX (Standard in AutoHotkey 1.0, aber nicht in 1.1) oder MPRESS (optional in AutoHotkey 1.1) komprimiert sind. Da die Standardinstallation von AutoHotkey einen Kompressor nicht beinhaltet, werden kompilierte Skripte standardmäßig nicht komprimiert.

Allgemeine Aufgaben

Wo finde ich den offiziellen Build, oder ältere Versionen?

Siehe Download-Seite von AutoHotkey.

Kann ich AHK von einem USB-Laufwerk ausführen?

Siehe Portabilität von AutoHotkey.exe.

Hinweis: Wenn Sie ein Skript kompilieren, das automatisch einfügende Funktionsbibliotheken verwendet, müssen AutoHotkey.exe und der Lib-Ordner eine Ebene höher sein als Ahk2Exe.exe (z. B. \AutoHotkey.exe vs \Compiler\Ahk2Exe.exe). Beachten Sie zudem, dass Ahk2Exe seine Einstellungen in den folgenden Registry-Schlüssel speichert: HKCU\Software\AutoHotkey\Ahk2Exe. Der Compiler selbst (Ahk2Exe) wird nicht benötigt, um Skripte auszuführen.

Wie kann die Ausgabe einer Befehlszeilenoperation abgefragt werden?

Tests zeigen, dass eine temporäre Datei aufgrund von Datei-Caching sehr schnell bei relativ kleinen Ausgaben sein kann. Tatsächlich wird sie gar nicht erst auf das Laufwerk geschrieben, wenn die Datei unmittelbar nach ihrer Verwendung gelöscht wird. Zum Beispiel:

RunWait %ComSpec% /c dir > C:\Meine Temp-Datei.txt
FileRead, VarMitInhalt, C:\Meine Temp-Datei.txt
FileDelete, C:\Meine Temp-Datei.txt

Wenn Sie temporäre Dateien vermeiden wollen (besonders wenn die Ausgabe groß ist), sollten Sie die Shell.Exec()-Methode verwenden, die in den Beispielen des Run-Befehls zu finden ist.

Wie kann ein Skript andere Skripte schließen, pausieren, suspendieren oder neu laden?

Zunächst ein Beispiel, das ein anderes Skript schließt:

DetectHiddenWindows On  ; Ermöglicht die Erkennung des versteckten Hauptfensters eines Skripts.
SetTitleMatchMode 2  ; Verhindert, dass unten der vollständige Pfad der Datei angegeben werden muss.
WinClose SkriptDateiName.ahk - AutoHotkey  ; Verwenden Sie hier den Namen Ihres Skripts (Groß-/Kleinschreibung-sensitiv).

Soll ein anderes Skript suspendiert, pausiert oder neu geladen werden, ersetzen Sie die letzte Zeile oben mit eine der folgenden Zeilen:

PostMessage, 0x0111, 65305,,, SkriptDateiName.ahk - AutoHotkey  ; Suspendieren.
PostMessage, 0x0111, 65306,,, SkriptDateiName.ahk - AutoHotkey  ; Pausieren.
PostMessage, 0x0111, 65303,,, SkriptDateiName.ahk - AutoHotkey  ; Neu laden.

Wie kann eine sich wiederholende Aktion gestoppt werden, ohne das Skript beenden zu müssen?

Um bei Tastendruck das ganze Skript zu pausieren oder fortzusetzen, weisen Sie wie folgt dem Pause-Befehl ein Hotkey zu:

^!p::Pause  ; Drücken Sie STRG+ALT+P, um die Pause zu starten. Drücken Sie es nochmal, um die Pause zu beenden.

Um eine sich wiederholende Aktion innerhalb einer Schleife zu stoppen, verwenden Sie den folgenden Hotkey, der seine eigene sich wiederholende Aktion sowohl startet als auch beendet. Das heißt, dass durch einmaliges Drücken des Hotkeys die Schleife begonnen und durch nochmaliges Drücken diese wieder beendet wird.

#MaxThreadsPerHotkey 3
#z::  ; WIN+Z (passen Sie diesen Hotkey Ihren Bedürfnissen an).
#MaxThreadsPerHotkey 1
if WinZLaufenLassen  ; Bedeutet, dass ein darunterliegender Thread bereits die untere Schleife ausführt.
{
    WinZLaufenLassen := false  ; Signalisiert dem Thread, die Schleife zu stoppen.
    return  ; Beendet diesen Thread, damit der darunterliegende Thread zu einem fortgesetzt wird und zum anderen die obere Zuweisung sehen kann.
}
; Ansonsten:
WinZLaufenLassen := true
Loop
{
    ; Die nächsten vier Zeilen sind die Aktionen, die wiederholt werden sollen (passen Sie sie Ihren Bedürfnissen an):
    ToolTip, Drücken Sie erneut WIN+Z`, um das hier zu stoppen.
    Sleep 1000
    ToolTip
    Sleep 1000
    ; Lassen Sie den Rest aber unverändert.
    if not WinZLaufenLassen  ; Der Benutzer hat die Schleife durch erneutes Drücken von WIN+Z gestoppt.
        break  ; Unterbricht die Schleife.
}
WinZLaufenLassen := false  ; Setzt den Wert zum Wiederverwenden des Hotkeys zurück.
return

Wie kann die kontextabhängige Hilfe für AutoHotkey-Befehle in einem beliebigen Editor verwendet werden?

Rajat hat dafür dieses Skript erstellt.

Wie kann man feststellen, dass eine Webseite fertig geladen ist?

Für den Internet Explorer ist DllCall() in Kombination mit COM die wohl zuverlässigste Methode; ein Beispiel dazu finden Sie unter www.autohotkey.com/forum/topic19256.html. Außerdem kann man den Inhalt der Adress- und Statusleiste abrufen, wenn man die Methode von www.autohotkey.com/forum/topic19255.html verwendet.

Ältere, weniger zuverlässige Methode: Das folgende Beispiel funktioniert für fast alle Webseiten des Internet Explorers. Eine ähnliche Methode könnte auch für andere Browser funktionieren:

Run, www.yahoo.com
MouseMove, 0, 0  ; Verhindert, dass in der Statusleiste aufgrund der Mausposition ein Link angezeigt wird.
WinWait, Yahoo! - 
WinActivate 
StatusBarWait, Done, 30
if ErrorLevel
    MsgBox Die Wartezeit ist abgelaufen oder das Fenster wurde geschlossen. 
else 
    MsgBox Die Webseite wurde geladen.

Wie können Datums- oder Zeitwerte verglichen oder geändert werden?

Der EnvAdd-Befehl kann eine bestimmte Menge an Tagen, Stunden, Minuten oder Sekunden im YYYYMMDDHH24MISS-Format addieren oder subtrahieren. Das folgende Beispiel subtrahiert 7 Tage von einer bestimmten Zeit: EnvAdd, VariableMitZeitstempel, -7, days.

Um die Zeitmenge zwischen zwei Datum- oder Zeitwerten zu ermitteln, sollten Sie sich das Beispiel in EnvSub anschauen. Die interne Variable A_Now enthält die aktuelle Ortszeit. Außerdem gibt es noch andere interne Datum/Zeit-Variablen, sowie auch den FormatTime-Befehl, um eine benutzerdefinierte Datum/Zeit-Zeichenkette erstellen zu können.

Wie kann ich das aktuelle Datum und/oder die aktuelle Uhrzeit senden?

Mit FormatTime oder internen Datum- und Zeit-Variablen.

Wie kann ich Text zu einem Fenster senden, das weder aktiv noch sichtbar ist?

Mit ControlSend.

Wie kann Winamp auch dann gesteuert werden, wenn es nicht aktiv ist?

Siehe Winamp automatisieren.

Wie können die Namen der MsgBox-Schaltflächen geändert werden?

Hier dazu ein Beispiel.

Wie kann ich den Standard-Texteditor ändern, den man via Kontextmenü oder Tray-Symbol öffnen kann?

Im Beispiel-Bereich von Edit finden Sie ein Skript, mit dem der Standard-Texteditor geändert werden kann.

Wie kann ich die Inhalte der Steuerelemente in ihre zugeordneten Variablen speichern?

Mit Gui Submit. Zum Beispiel:

Gui, Add, Text,, Tragen Sie etwas Text ein und drücken Sie Submit:
Gui, Add, Edit, vZugeordneteVar
Gui, Add, Button,, Submit
Gui, Show
Return

ButtonSubmit:
Gui, Submit, NoHide
MsgBox, Inhalt des Edit-Steuerelements: %ZugeordneteVar%
Return

Kann ich mit AHK etwas zeichnen?

Siehe GDI+ standard library von tic. Mit Gui kann auch etwas gezeichnet werden, allerdings auf sehr rudimentärer Weise.

Wie kann ich eine Aktion starten, wenn ein Fenster erscheint, geschlossen oder [in]aktiv wird?

Mit WinWait, WinWaitClose oder WinWait[Not]Active.

Es gibt auch vom Benutzer erstellte Lösungen wie OnWin.ahk und [How to] Hook on to Shell to receive its messages (wie man auf Shell zugreifen kann, um dessen Meldungen abzurufen).

Hotkeys, Hotstrings und Neubelegung

Wie können meine Hotkeys und Hotstrings automatisch bei jedem PC-Start ausgeführt werden?

Es gibt mehrere Möglichkeiten, wie man ein Skript (oder ein beliebiges Programm) ausführt, während Windows gestartet wird. Der einfachste Weg ist es, eine Verknüpfung der Skriptdatei im Autostart-Ordner zu platzieren:

  1. Finden Sie die Skript-Datei, markieren Sie sie und drücken Sie Strg+C.
  2. Drücken Sie Win+R, um das Ausführen-Dialogfenster zu öffnen, geben Sie shell:startup ein und klicken Sie auf OK oder drücken Sie Enter. Daraufhin öffnet sich der Autostart-Ordner des aktuellen Benutzers. Um stattdessen den Ordner für alle Benutzer zu öffnen, geben Sie shell:common startup ein (in diesem Fall müssen Sie jedoch über administrative Rechte verfügen).
  3. Machen Sie einen Rechtsklick innerhalb des Fensters und klicken Sie auf "Verknüpfung einfügen". Die Verknüpfung des Skripts sollte nun im Autostart-Ordner sein.

Ich habe Schwierigkeiten, meine Maustasten als Hotkeys zu definieren. Irgendwelche Hinweise?

Die linke und rechte Maustaste sollten normal zuweisbar sein (zum Beispiel wäre #LButton:: der Hotkey Win+MAUSTASTE-LINKS). Die mittlere Maustaste und das Mausrad sollten auch normal zuweisbar sein, außer bei Mäusen, deren Tasten direkt vom Treiber gesteuert werden.

Die vierte (XButton1) und fünfte Maustaste (XButton2) sind möglicherweise auch zuweisbar, sofern Ihr Maustreiber diese Klicks für das System erkennbar macht. Wenn das System diese Tasten nicht erkennen kann (oder wenn neben den 5 Haupttasten noch andere Maustasten erkennbar gemacht werden sollen), kann man versuchen, die Maus so einzustellen, dass sie Tastendrücke sendet, wenn bestimmte Maustasten gedrückt werden (häufig via mitgelieferte Software, die in der Systemsteuerung oder im Startmenü zu finden ist). Danach könnte man solche Tastendrücke in einem Skript als Hotkey definieren. Wenn man beispielsweise die vierte Maustaste Strg+F1 senden lässt, kann man sie mithilfe von ^F1:: im Skript indirekt als Hotkey definieren.

Wenn das System die vierte und fünfte Maustaste einer 5-Tasten-Maus nicht erkennen kann, kann man versuchen, den Maustreiber mit dem Standardtreiber des Betriebssystems zu ersetzen. Das setzt voraus, dass so ein Treiber für Ihre Maus vorhanden ist und dass Sie ohne die mitgelieferten Features von der Software leben können.

Wie können TAB und LEERTASTE als Hotkeys definiert werden?

Benutzen Sie die englischen Namen von diesen Tasten (Tab und Space). Zum Beispiel wäre #Space Win+Leer und ^!Tab Strg+Alt+Tab.

Wie können Tastatur- oder Maustasten neu belegt werden, so dass sie zu anderen Tasten werden?

Das wird auf der Seite "Neubelegung von Tasten" beschrieben.

Wie kann ich einen doppelten Tastendruck oder Mausklick erkennen?

Verwenden Sie die internen Variablen für Hotkeys wie folgt:

~Ctrl::
    if (A_ThisHotkey = A_PriorHotkey && A_TimeSincePriorHotkey < 200)
        MsgBox Doppeldruck
return

Wie kann ein Hotkey oder Hotstring exklusiv für ein bestimmtes Programm gemacht werden? Mit anderen Worten möchte ich eine bestimmte Taste dazu bringen, etwas anderes zu tun, wenn ein bestimmtes Fenster aktiv ist.

Die bevorzugte Methode ist #IfWinActive. Zum Beispiel:

#IfWinActive, ahk_class Notepad
^a::MsgBox Sie haben STRG+A gedrückt, während der Editor aktiv ist.

Wie kann man eine sonst funktionslose Präfix-Taste dazu bringen, ihre ursprüngliche Funktion durchzuführen?

Das folgende Beispiel macht Numpad0 zu einer Präfix-Taste:

Numpad0 & Numpad1::MsgBox, Sie haben Numpad1 gedrückt, während Sie Numpad0 gedrückt hielten.

Um Numpad0 nun dazu zu bringen, immer dann einen echten Numpad0-Tastendruck zu senden, wenn die Taste nicht zum Starten eines Hotkeys wie oben benötigt wird, fügen Sie den folgenden Hotkey hinzu:

 $Numpad0::Send, {Numpad0}

Das $-Präfix ist notwendig, um ein Warndialogfenster im Falle einer Endlosschleife zu unterdrücken (da der Hotkey "sich selbst sendet"). Darüber hinaus wird die obere Aktion erst ausgelöst, wenn die Taste losgelassen wird.

Wie können die systeminternen Tastaturkurzbefehle wie WIN+U (Eingabehilfe) und WIN+R (Ausführen) geändert oder deaktiviert werden?

Hier dazu einige Beispiele.

Kann ich Platzhalter oder reguläre Ausdrücke in Hotstrings verwenden?

Verwenden Sie das Skript von polyethene (Beispiele sind enthalten).

Wie kann ich einen Hotkey verwenden, der nicht auf meinem Tastaturlayout vorkommt?

Siehe Sondertasten.

Meine Tastatur hat die 000-Taste. Ist es möglich, diese Taste in ein Hotkey umzuwandeln?

Ja. Dieses Beispiel-Skript lässt 000 ein Gleichheitszeichen senden. Um stattdessen eine andere Aktion ausführen zu lassen, ersetzen Sie Send, = mit eine oder mehrere Zeilen Ihrer Wahl.