# Process Control > Symcon documentation · English · generated on 2026-09-26 > Index: https://www.symcon.de/en/llms.txt Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ ## IPS_Execute Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-execute/ `bool IPS_Execute(string $ProgramPath, string $Parameter, bool $Dummy, bool $Wait)` Starts an external program **Parameters** - `$ProgramPath` (string): Full path to the program - `$Parameter` (string): Parameter which is to be passed to the program (optional) - `$Dummy` (bool): Always specify true, parameter is not evaluated, this was only used in version 1.x. - `$Wait` (bool): Specifies whether to wait for the end of the program **Returns** (bool): The return value of stderr/stdout if the __Wait__ parameter is True, otherwise the return is an empty string. Specifies whether to wait for the end of the program **Example** ```php //Start a batch file IPS_Execute("C:/autoexec.bat", "", false, false); ``` ## IPS_ExecuteEx Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-executeex/ `string IPS_ExecuteEx(string $ProgramPath, string $Parameter, bool $ShowWindow, bool $Wait, int $SessionID)` Starts an external program in the user context **Parameters** - `$ProgramPath` (string): Full path to the program - `$Parameter` (string): Parameter which is to be passed to the program (optional) - `$ShowWindow` (bool): __True__ if the window should be displayed; __False__ if the window should not be visible - `$Wait` (bool): Specifies whether to wait for the end of the program - `$SessionID` (int): The user session ID, which is to be used (from Under XP from 0, 2003/Vista 1) **Returns** (string): Empty string The user session ID, which is to be used (from Under XP from 0, 2003/Vista 1) **Example** ```php //Notepad started IPS_ExecuteEx("notepad", "", false, false, 0); ``` ## IPS_RunAction Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runaction/ `bool IPS_RunAction(string $ActionID, array $ActionParameters)` executes a single action **Parameters** - `$ActionID` (string): GUID of the executed action - `$ActionParameters` (array): List of Parameters for the executed action **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. List of Parameters for the executed action **Example** ```php // Execute Script with the ID 12345 IPS_RunAction("{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}", ["TARGET" => 12345, "ENVIRONMENT" => "Default", "PARENT" => $_IPS['SELF']]); // Show all actions and their GUIDs foreach(json_decode(IPS_GetActions(), true) as $action) { echo $action['id'] . " -> " . $action['caption'] . PHP_EOL; // var_dump($action); <-- Shows more details, for example: restrictions } ``` ## IPS_RunActionWait Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runactionwait/ `string IPS_RunActionWait(string $ActionID, array $ActionParameters)` executes a single action and waits for the result **Parameters** - `$ActionID` (string): ID of the executed action - `$ActionParameters` (array): List of Parameters for the executed action **Returns** (string): Error message of the execution List of Parameters for the executed action **Example** ```php // Execute the script with the ID 12345 $error = IPS_RunActionWait("{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}", ["TARGET" => 12345, "ENVIRONMENT" => "Default", "PARENT" => $_IPS['SELF']]); if ($error === "") { echo "Action was executed succesfully"; } else { echo "There was an error during execution: " . $error; } ``` ## IPS_RunScript Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runscript/ `bool IPS_RunScript(int $ScriptID)` starts another IP-Symcon script **Parameters** - `$ScriptID` (int): Unique ID of the script **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. Unique ID of the script **Example** ```php IPS_RunScript(12345 /*[Garden lighting On]*/); ``` ## IPS_RunScriptEx Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runscriptex/ `bool IPS_RunScriptEx(int $ScriptID, array $Parameter)` starts another IP-Symcon script and passes variables **Parameters** - `$ScriptID` (int): Unique ID of the script - `$Parameter` (array): Key (string) => Value (variant) pair can be accessed in the newly executed script. **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. Key (string) => Value (variant) pair can be accessed in the newly executed script. **Example** ```php //Script, that will launch another script with parameter passing. IPS_RunScriptEx(12345 /*[Temp]*/, Array("Title" => "Temp.", "Tmin" => 10.0)); //Script that was called. Parameters are available as individual variables in the //global variable $_IPS. The variable name corresponds to the array index //given name. $Headline = $_IPS['Title']. "progress"; //Results: Temp.progress $MaxTemp = $Tmin + 30.0; ``` ## IPS_RunScriptText Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runscripttext/ `bool IPS_RunScriptText(string $ScriptText)` starts text as IP-Symcon script **Parameters** - `$ScriptText` (string): String which is called as script. **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. String which is called as script. **Example** ```php // Prints "Hello World" in the message view IPS_RunScriptText("echo 'Hello World';"); ``` ## IPS_RunScriptTextEx Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runscripttextex/ `bool IPS_RunScriptTextEx(string $ScriptText, array $Parameter)` starts a text as IP-Symcon script and passes variables **Parameters** - `$ScriptText` (string): String that is executed as script - `$Parameter` (array): Key (string) => Value (variant) Pairs that can be accessed in the executed script **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. Key (string) => Value (variant) Pairs that can be accessed in the executed script **Example** ```php // Prints "Hello World" in the message view IPS_RunScriptTextEx('echo $_IPS["start"] . " ". $_IPS["end"];', Array("start" => "Hello", "end" => "World")); ``` ## IPS_RunScriptTextWait Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runscripttextwait/ `string IPS_RunScriptTextWait(string $ScriptText)` starts a text as IP-Symcon script and waits for its execution **Parameters** - `$ScriptText` (string): String that is executed as script **Returns** (string): Result of the executed script String that is executed as script **Example** ```php // Prints "Hello World" in the message view echo IPS_RunScriptTextWait("echo 'Hello World';"); ``` ## IPS_RunScriptTextWaitEx Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runscripttextwaitex/ `string IPS_RunScriptTextWaitEx(string $ScriptText, array $Parameter)` starts a text as IP-Symcon script, passes variables, and waits for the execution of the script **Parameters** - `$ScriptText` (string): String that is executed as script - `$Parameter` (array): Key (string) => Value (variant) Pairs that can be accessed in the executed script **Returns** (string): Result of the executed script Key (string) => Value (variant) Pairs that can be accessed in the executed script **Example** ```php //Script that executes text as script and passes parameters echo IPS_RunScriptTextWaitEx('echo $_IPS["title"]. "course" . PHP_EOL; echo $_IPS["Tmin"] + 30.0;', Array("title" => "Temp.", "Tmin" => 10.0)); ``` ## IPS_RunScriptWait Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runscriptwait/ `string IPS_RunScriptWait(int $ScriptID)` starts another IP-Symcon script and waits for the result **Parameters** - `$ScriptID` (int): Unique ID of the script **Returns** (string): Result of current script Unique ID of the script **Example** ```php echo IPS_RunScriptWait(12345 /*[Script A]*/); ``` ## IPS_RunScriptWaitEx Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-runscriptwaitex/ `string IPS_RunScriptWaitEx(int $ScriptID, array $Parameter)` starts another IP-Symcon script, passes variables, and waits for the result **Parameters** - `$ScriptID` (int): Unique ID of the script - `$Parameter` (array): Key (string) => Value (variant) pair can be accessed in the newly executed script. **Returns** (string): Result of current script Key (string) => Value (variant) pair can be accessed in the newly executed script. **Example** ```php //Script, that will launch another script with parameter passing. echo IPS_RunScriptWaitEx(12345 /*[Temp]*/, Array("Title" => "Temp.", "Tmin" => 10.0)); //Script that was called. Parameters are available as individual variables in the //global variable $_IPS. The variable name corresponds to the array index //given name. $Headline = $_IPS['Title']. "progress"; //Results: Temp.progress $MaxTemp = $Tmin + 30.0; ``` ## IPS_SemaphoreEnter Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-semaphoreenter/ `bool IPS_SemaphoreEnter(string $Name, int $WaitingTime)` allows the synchronization with other simultaneously run scripts **Parameters** - `$Name` (string): Name that describes the semaphore - `$WaitingTime` (int): Milliseconds to wait until the command terminates **Returns** (bool): __TRUE__ if the semaphore was entered. __FALSE__ if the semaphore before the expiration of the waiting period could not be accessed. Milliseconds to wait until the command terminates **Example** ```php if (IPS_SemaphoreEnter("CriticalPoint", 1000)) { // ...Run critical Commands //Release semaphore again! IPS_SemaphoreLeave("CriticalPoint"); } else { // ...No execution possible. Another script uses the "CriticalPoint" // for more than 1 second, so our wait time is exceeded. } ``` ## IPS_SemaphoreLeave Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-semaphoreleave/ `bool IPS_SemaphoreLeave(string $Name)` allows the synchronization with other simultaneously run scripts **Parameters** - `$Name` (string): Name that describes the semaphore. **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. Name that describes the semaphore. **Example** ```php //See IPS_SemaphoreEnter() ``` ## IPS_Sleep Source: https://www.symcon.de/en/service/documentation/command-reference/process-control/ips-sleep/ `bool IPS_Sleep(int $WaitingTime)` delays a script for a specified duration **Parameters** - `$WaitingTime` (int): Specifies the waiting time in milliseconds **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. Specifies the waiting time in milliseconds **Example** ```php // Delayed data output to the COM port COMPort_SendText($id, chr(0x1b)); // Sent ESC to LC-Display IPS_Sleep(200); // Wait 200ms COMPort_SendText($id, "0"); // Delete LC-Display IPS_Sleep(200); // Wait 200ms COMPort_SendText($id, "Good day!"); // Return Text // Wait 2 seconds with PHP alternatives sleep(2); IPS_Sleep(2000); usleep(2000000); ```