Reload

Ersetzt die aktuell laufende Instanz des Skripts mit einer neuen Instanz.

Reload

Dieser Befehl ist für Skripte nützlich, die häufig geändert werden. Du kannst diesen Befehl einem Hotkey zuweisen, um das Skript auf einfache Weise neuzustarten, nachdem du deine Änderungen in einem Editor abgespeichert hast.

Jegliche Befehlszeilenparameter, die an das originale Skript übergeben wurden, werden nicht an die neue Instanz übergeben. Zum Übergeben solcher Parameter solltest du auf Reload verzichten. Verwende stattdessen Run in Verbindung mit A_AhkPath und A_ScriptFullPath (und A_IsCompiled, sofern das Skript jemals im kompilierter Form zur Verfügung steht). Ein Reload kann auch durchgeführt werden, wenn man die Zeichenkette /restart im ersten Parameter einfügt (also direkt nach dem Namen der ausführbaren Datei). Siehe auch: Befehlszeilenoptionen und Syntax.

Der Neustart des Skripts erfolgt in seinem originalen Arbeitsverzeichnis (also das Verzeichnis, das zum Zeitpunkt des Erststarts aktiv war). Das heißt, dass das Arbeitsverzeichnis nicht geändert werden kann, selbst dann nicht, wenn man SetWorkingDir in der neuen Instanz benutzen würde.

Wenn das Skript nicht neu geladen werden kann - z. B. aufgrund eines Syntaxfehlers - wird die originale Instanz des Skripts weiter ausgeführt. Demzufolge sollten nach dem Reload-Befehl bestimmte Aktionen erfolgen, die du im Falle eines Fehlers durchführen lassen möchtest (wie z. B. ein Return, um die aktuelle Subroutine zu beenden). Das folgende Beispiel zeigt, wie in der originalen Instanz der Fehler erkannt werden kann:

Reload
Sleep 1000 ; Bei Erfolg wird Reload diese Instanz während Sleep schließen, so dass die Zeile darunter nie erreicht werden kann.
MsgBox, 4,, Das Skript konnte nicht neu geladen werden. Möchten Sie das Skript öffnen, um es zu editieren?
IfMsgBox, Yes, Edit
return

Siehe auch

Edit

Beispiel

^!r::Reload  ; Verwendet STRG+ALT+R als Hotkey zum Neustarten des Skripts.