Determines whether a script is allowed to run again when it is already running.

#SingleInstance ForceIgnorePromptOff



If this parameter is omitted, it defaults to Prompt. To change this behavior, specify one of the following words:

Force: Skips the dialog box and replaces the old instance automatically, which is similar in effect to the Reload command.

Ignore: Skips the dialog box and leaves the old instance running. In other words, attempts to launch an already-running script are ignored.

Prompt: Displays a dialog box asking whether to keep the old instance or replace it with the new one. This is the default behaviour if this directive is not used.

Off: Allows multiple instances of the script to run concurrently.


A script containing hotkeys, hotstrings, #Persistent, OnMessage(), or Gui is single-instance (dialog & prompt) by default. Other scripts default to allowing multiple instances. This behavior can be disabled or modified as described above.

This directive is ignored when any of the following command line switches are used: /force /f /restart /r

Like other directives, #SingleInstance cannot be executed conditionally.


Previous instances of the script are identified by searching for a main window with the default title. Therefore, a previous instance may not be found if:

At most one previous instance is detected and sent a message asking it to close. Therefore, the following additional limitations also apply:

If multiple instances of the script are started simultaneously, they may fail to detect each other or may all target the same previous instance. This would result in multiple instances of the script starting.

Reload, #Persistent


Skips the dialog box and replaces the old instance automatically.

#SingleInstance Force