Häufig gestellte Fragen (FAQ)

Inhaltsverzeichnis

Sprachsyntax

Allgemeine Problembehandlung

Allgemeine Aufgaben

Hotkeys, Hotstrings und Neubelegung

Sprachsyntax

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

Doppelte Anführungszeichen (") haben nur innerhalb von Ausdrücken eine besondere Bedeutung. Überall sonst werden sie wie normale Zeichen behandelt. Wenn jedoch ein Skript ein Programm oder Dokument startet, müssen Befehlszeilenparameter, die Leerzeichen enthalten, in Anführungszeichen gesetzt werden, damit sie vom Betriebssystem richtig erkannt werden. Zum Beispiel: Run, Notepad.exe "C:\Meine Dateien\Adressliste.txt".

Wann genau werden Variablen mit Prozentzeichen umschlossen?

Variablennamen werden immer mit Prozentzeichen umschlossen, außer in den unten fett geschriebenen Fällen:

Weitere Informationen zur Verwendung von Prozentzeichen finden Sie unter Legacy-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, üblicherweise durch Voranstellen eines Akzents/umgekehrten Häkchens. Zum Beispiel: MsgBox Der aktuelle Prozentwert liegt bei 25`%. Direkt geschriebene Kommas müssen ebenfalls 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).

Wenn Kommas oder Prozentzeichen innerhalb eines Ausdrucks in Anführungszeichen stehen, 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: Entpacken Sie mit 7-Zip oder einem kompatiblen Programm die Setup-Dateien aus der Installer-EXE und starten Sie dann setup.exe oder Installer.ahk (ziehen Sie Installer.ahk mit gedrückter Maustaste auf AutoHotkeyU32.exe).

Der AutoHotkey-Installer ist ein selbstentpackendes 7-Zip-Archiv, das versucht, 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 anderen Faktoren nicht entpackt oder ausgeführt werden dürfen. Normalerweise wird in solchen Fällen ein "7-Zip-Fehler" angezeigt. Um potenziell Abhilfe zu schaffen, entpacken Sie die Dateien manuell in ein anderes Verzeichnis.

Setup hängt: Wenn das Setup-Fenster ohne Inhalt oder gar nicht erscheint, können Sie eine oder beide der folgenden Methoden ausprobieren:

Sonstiges: Die obigen Vorschläge beziehen sich nur auf die am häufigsten auftretenden Probleme. Weitere Hilfe finden Sie im Forum.

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

Normalerweise sollte, wenn AutoHotkey installiert ist, 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. Dieses Problem kann durch Löschen des folgenden Registry-Schlüssels behoben werden:

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

Noch einfacher geht es mit diesem Registry-Patch.

Eventuell müssen Sie auch die Standardwerte in der Registry 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 vor dem ersten Hotkey, Hotstring oder Return ein. Weitere Informationen finden Sie unter Der Anfang des Skripts (automatischer Ausführungsbereich).

Beachten Sie auch, dass, wenn ein Hotkey mehr als eine Zeile ausführt, die erste Zeile unter dem Hotkey stehen muss, nicht in derselben Zeile. Zum Beispiel:

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

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

Dieses Problem gibt es in mehreren Varianten:

Wenn Sie auf ein anderes Betriebssystem umgestiegen sind, kann es sein, dass sich etwas geändert hat, das sich auf Ihr Skript auswirkt. Haben Sie zum Beispiel einen neuen Computer, 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 das Changelog und die Kompatibilitätshinweise auf Änderungen, die Ihr Skript beeinträchtigen 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 Gerätenummerierung anders ist und einige Komponenten eventuell nicht verfügbar sind. Das Verhalten hängt von den Audiotreibern ab, die sich zwangsläufig von denen in XP unterscheiden. Mit dem Soundkartenanalyse-Skript können die korrekten Gerätenummern ermittelt werden.

Siehe auch die folgende Frage:

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

Aus Sicherheitsgründen verhindert die Benutzerkontensteuerung (engl. User Account Control, kurz UAC), dass "höherberechtigte" Programme (also Programme mit Adminrechten) von anderen, nicht-höherberechtigten Programmen automatisiert werden können. Auch Hotkeys werden blockiert, so dass bspw. ein nicht-höherberechtigtes Programm keine Eingaben mitlesen kann, die für ein höherberechtigtes Programm bestimmt sind.

UAC kann 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 muss 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 Skriptdatei finden.

Suchen Sie nach AutoHotkey.ahk in den folgenden Verzeichnissen:

Wenn Sie eine andere AutoHotkey-EXE-Datei direkt ausführen, wird automatisch ein Skript mit demselben Namen gestartet. Führen Sie beispielsweise AutoHotkeyU32.exe aus, müssen Sie 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]

Sie können eine Skriptdatei üblicherweise durch Öffnen des Rechtsklickmenüs und Auswählen von Edit Script editieren. Wenn das nicht funktioniert, öffnen Sie die Datei in Notepad oder in einem anderen Texteditor.

Wenn Sie AutoHotkey über das Startmenü oder durch direktes Ausführen von AutoHotkey.exe starten (ohne Befehlszeilenparameter), sucht es nach einem Skript in einem der oben genannten Orte. Oder Sie erstellen einfach eine Skriptdatei (beliebigerName.ahk) an einem beliebigen Ort und führen diese stattdessen aus.

Siehe auch Befehlszeilenparameter "Skriptdateiname" und Portabilität von AutoHotkey.exe.

Wie kann ich Fehler in meinem Code finden und beheben?

Für einfache Skripte siehe Ein Skript debuggen. Um den Inhalt einer Variable anzuzeigen, verwenden Sie MsgBox oder ToolTip. Für komplexe Skripte siehe Interaktives Debuggen.

Warum kann der Run-Befehl mein Videospiel oder Programm nicht starten?

Einige Programme müssen in ihrem eigenen Verzeichnis gestartet werden (was im Zweifelsfall immer getan werden sollte). Zum Beispiel:

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

Wenn Sie mit der 32-Bit-Version von AutoHotkey auf einem 64-Bit-System ein Programm starten wollen, das sich im Ordner %A_WinDir%\System32 befindet, kann es sein, dass die Dateisystemumleitung Probleme macht. 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 auf 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 unter UTF-8 mit BOM.

Obwohl AutoHotkey Unicodetexte unterstützt, ist es auf Abwärtskompatibilität ausgelegt, d.h. es verwendet standardmäßig die ANSI-Kodierung, 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 (BOM).

Mit anderen Worten: UTF-8-Dateien, die keine BOM haben, werden fehlinterpretiert, was dazu führt, dass ASCII-fremde Zeichen falsch dekodiert werden. Um dieses Problem zu beheben, müssen Sie die Datei unter UTF-8 mit BOM speichern oder die Befehlszeilenoption /CP65001 hinzufügen.

Um eine Datei in Notepad unter UTF-8 mit BOM zu speichern, wählen Sie UTF-8 mit BOM (oder UTF-8 auf Systemen älter als Windows 10 v1903) in der ausklappbaren Liste neben Kodierung im Dialogfenster "Speichern unter" aus. Beachten Sie, dass Notepad in Windows 10 v1903 und höher standardmäßig UTF-8 (ohne BOM) verwendet.

Um BOM-lose UTF-8-Dateien zu lesen, verwenden Sie FileEncoding UTF-8-RAW, die *P65001-Option mit FileRead oder "UTF-8-RAW" im dritten Parameter von FileOpen(). Sie können das -RAW-Suffix weglassen, aber dann werden alle neuen Dateien eine BOM haben.

Beachten Sie, dass INI-Dateien, die mit den Standard-INI-Befehlen gelesen oder geschrieben werden, UTF-8 nicht unterstützen; sie müssen unter ANSI oder UTF-16 gespeichert sein.

Warum funktionieren Hotstrings, Send und Click in einigen Videospielen nicht?

Nicht immer ist es bei Videospielen möglich, ihnen Tasten oder Mausklicks zu senden oder ihre Pixelfarben zu lesen.

Es gibt jedoch einige Alternativen, die Sie ausprobieren können. Wenn alle fehlschlagen, ist AutoHotkey möglicherweise nicht für Ihr Videospiel geeignet. Einige Videospiele haben eingebaute Maßnahmen gegen Hacks und Cheats, wie z.B. GameGuard und Hackshield. In diesem Fall besteht eine hohe Chance, dass AutoHotkey nicht funktioniert.

Wie kann die Performanz bei Videospielen bzw. in Situationen mit hoher CPU-Last verbessert werden?

Wenn Hotkeys, Clicks oder Sends bei hoher CPU-Last spürbar langsamer als normal sind, kann es helfen, die Prozesspriorität des Skripts zu erhöhen. Fügen Sie dazu die folgende Zeile am Anfang des Skripts ein:

Process, Priority, , High

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

Es kann zwar nie ganz ausgeschlossen werden, dass die Datei infiziert ist, aber in den meisten Fällen handelt es sich bei solchen Warnungen um False-Positives (Falschmeldungen), d.h. das Antivirenprogramm irrt sich. Oft wird vorgeschlagen, die Datei bei einem Onlinedienst wie virustotal oder Jotti hochzuladen, um zu sehen, was andere Antivirenprogramme melden. Im Zweifelsfall kann man die Datei an den Hersteller des Antivirenprogramms schicken und sich die Echtheit bestätigen lassen. Das würde auch uns und anderen AutoHotkey-Benutzern helfen, da der Hersteller diese Warnung möglicherweise als False-Positive einstuft und sein Programm so anpasst, dass es reibungslos mit AutoHotkey funktioniert.

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 keinen Kompressor enthält, werden kompilierte Skripte standardmäßig nicht komprimiert.

Allgemeine Aufgaben

Wo finde ich den offiziellen Build oder ältere Versionen?

Auf der 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 auto-inkludierte Funktionsbibliotheken verwendet, müssen AutoHotkey.exe und der Lib-Ordner eine Ebene höher liegen als Ahk2Exe.exe (z.B. \AutoHotkey.exe vs \Compiler\Ahk2Exe.exe). Beachten Sie auch, dass Ahk2Exe seine Einstellungen in folgendem 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 abgerufen werden?

Um die Ausgabe einer Befehlszeilenoperation abzurufen, können Sie eine temporäre Datei verwenden. Tests haben gezeigt, dass diese Methode bei relativ kleinen Ausgaben aufgrund von Datei-Caching sehr schnell sein kann. Tatsächlich wird die Datei oft gar nicht auf das Laufwerk geschrieben, wenn sie sofort 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 bei den Beispielen zum Run-Befehl zu finden ist.

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

Hier 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).

Wenn ein anderes Skript suspendiert, pausiert oder neu geladen werden soll, 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 zu beenden?

Um das gesamte Skript auf Tastendruck zu pausieren oder fortzusetzen, weisen Sie dem Pause-Befehl einen Hotkey wie folgt zu:

^!p::Pause  ; Drücke Strg+Alt+P zum Pausieren. Drücke erneut zum Fortsetzen.

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 stoppt. Durch einmaliges Drücken des Hotkeys wird die Schleife gestartet, durch erneutes Drücken wird sie gestoppt.

#MaxThreadsPerHotkey 3
#z::  ; WIN+Z (passen Sie diesen Hotkey Ihren Bedürfnissen an).
#MaxThreadsPerHotkey 1
if WinZLaufenLassen  ; Bedeutet, dass ein darunter liegender Thread die Schleife unten bereits ausführt.
{
    WinZLaufenLassen := false  ; Signalisiert der Schleife zu stoppen.
    return  ; Beendet diesen Thread, damit der darunter liegende weiterläuft und die Änderung von der Zeile oben sieht.
}
; Andernfalls:
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 signalisierte den Stopp der Schleife durch erneutes Drücken von WIN+Z.
        break  ; Unterbricht die Schleife.
}
WinZLaufenLassen := false  ; Setzt den Wert zum Wiederverwenden des Hotkeys zurück.
return

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

Rajat hat dafür dieses Skript geschrieben.

Wie kann man feststellen, ob eine Webseite vollständig geladen wurde?

Für den Internet Explorer ist DllCall() in Kombination mit COM wohl die zuverlässigste Methode; ein Beispiel dazu finden Sie unter www.autohotkey.com/forum/topic19256.html. Es ist auch möglich, den Inhalt der Adress- und Statusleiste abzurufen; siehe www.autohotkey.com/forum/topic19255.html.

Ä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 aufgrund der Mausposition ein Link in der Statusleiste 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 Anzahl von Tagen, Stunden, Minuten oder Sekunden im YYYYMMDDHH24MISS-Format addieren oder subtrahieren. Das folgende Beispiel subtrahiert 7 Tage von einer bestimmten Zeit: EnvAdd, VarMitZeitstempel, -7, d.

Um die Zeitmenge zwischen zwei Datums- oder Zeitwerten zu ermitteln, sehen Sie sich das Beispiel in EnvSub an. Die interne Variable A_Now enthält die aktuelle Ortszeit. Des Weiteren gibt es mehrere interne Datum/Zeit-Variablen, sowie den FormatTime-Befehl, um eine benutzerdefinierte Datum/Zeit-Zeichenkette zu erzeugen.

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

Mit FormatTime oder internen Datum/Zeit-Variablen.

Wie kann ich Text an ein 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 Standardeditor ändern, den man via Kontextmenü oder Tray-Symbol öffnen kann?

Im Beispielabschnitt von Edit finden Sie ein Skript, mit dem Sie den Standardeditor ändern können.

Wie kann ich den Inhalt aller GUI-Steuerelemente in ihren 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 man auch etwas zeichnen, aber nur sehr rudimentär.

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

Mit WinWait, WinWaitClose oder WinWait[Not]Active.

Es gibt von Benutzern 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 kann ich erreichen, dass meine Hotkeys und Hotstrings automatisch bei jedem PC-Start verfügbar sind?

Es gibt mehrere Möglichkeiten, ein Skript (oder ein anderes Programm) beim Start von Windows auszuführen. Am einfachsten ist es, eine Verknüpfung zur Skriptdatei im Autostart-Ordner zu platzieren:

  1. Finden Sie die Skriptdatei, 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. Der Autostart-Ordner des aktuellen Benutzers wird geöffnet. Um stattdessen den Ordner aller Benutzer zu öffnen, geben Sie shell:common startup ein (in diesem Fall benötigen Sie jedoch Adminrechte).
  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 Tipps?

Die linke und rechte Maustaste sollten normal belegbar sein (z.B. ist #LButton:: der Hotkey Win+MAUSTASTE-LINKS). Die mittlere Maustaste und das Mausrad sollten ebenfalls normal belegbar sein, außer bei Mäusen, deren Tasten direkt vom Treiber gesteuert werden.

Die vierte (XButton1) und fünfte Maustaste (XButton2) können ebenfalls belegt werden, sofern Ihr Maustreiber diese Klicks für das System erkennbar macht. Wenn das System diese Tasten nicht erkennt (oder um neben den 5 Haupttasten noch andere Maustasten erkennbar zu machen), können Sie versuchen, die Maus mittels eigener Software so einzustellen (manchmal über die Systemsteuerung oder das Startmenü zugänglich), dass sie einen Tastendruck sendet, wenn Sie eine dieser Maustasten drücken. Dieser Tastendruck kann dann in einem Skript als Hotkey definiert werden. Wenn Sie zum Beispiel die vierte Maustaste so einstellen, dass sie Strg+F1 sendet, können Sie diese Maustaste indirekt als Hotkey definieren, indem Sie ^F1:: in einem Skript verwenden.

Wenn Sie eine 5-Tasten-Maus besitzen, aber das System die vierte und fünfte Maustaste nicht erkennt, können Sie versuchen, den Maustreiber mit dem Standardtreiber des Betriebssystems zu ersetzen. Dies setzt voraus, dass so ein Treiber für Ihre Maus vorhanden ist und dass Sie auf die Features, die die Software Ihrer Maus normalerweise bereitstellt, verzichten können.

Wie können Tabulator und Leertaste als Hotkeys definiert werden?

Benutzen Sie die englischen Namen dieser Tasten (Tab und Space). Zum Beispiel: #Space ist Win+Leer und ^!Tab ist Strg+Alt+Tab.

Wie können Tastatur- oder Maustasten zu anderen Tasten umbelegt werden?

Informationen dazu finden Sie unter Neubelegung von Tasten.

Wie kann ich einen doppelten Tastendruck oder Mausklick erkennen?

Verwenden Sie die internen Hotkey-Variablen 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, ich möchte 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 Notepad aktiv war.

Wie kann man eine sonst funktionslose Präfixtaste dazu bringen, ihre ursprüngliche Funktion auszuführen?

Das folgende Beispiel macht aus Numpad0 eine Präfixtaste:

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

Um nun Numpad0 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"). Außerdem wird die obige Aktion erst ausgelöst, wenn die Taste losgelassen wird.

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

Hier 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 in meiner Tastaturbelegung nicht existiert?

Siehe Sondertasten.

Meine Tastatur hat die 000-Taste. Ist es möglich, diese Taste in einen 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.