# Function Reference

# RunWait

Runs an external program and pauses script execution until the program finishes.

RunWait ( "program" [, "workingdir" [, show_flag [, opt_flag]]] )

## Parameters

program | The full path of the program (EXE, BAT, COM, or PIF) to run (see remarks).
workingdir | [optional] The working directory. Blank ("") uses the current working directory. This is not the path to the program.
show_flag | [optional] The "show" flag of the executed program: @SW_HIDE = Hidden window (or Default keyword) @SW_MINIMIZE = Minimized window @SW_MAXIMIZE = Maximized window
opt_flag | [optional] Controls various options related to how the parent and child process interact. 0x10000 ($RUN_CREATE_NEW_CONSOLE) = The child console process should be created with its own window instead of using the parents window. This flag is only useful when the parent is compiled as a Console application.

## Return Value

Success: | the exit code of the program that was run.
Failure: | sets the @error flag to non-zero.

## Remarks

Paths with spaces need to be enclosed in quotation marks.
To run DOS commands, try RunWait(@ComSpec & " /c " & "commandName") ; don't forget " " before "/c"
After running the requested program the script pauses until the program terminates. To run a program and then immediately continue script execution use the Run() function instead.
Some programs will appear to return immediately even though they are still running; these programs spawn another process - you may be able to use the ProcessWaitClose() function to handle these cases.

## Related

ProcessWait, ProcessWaitClose, Run, RunAs, RunAsWait, ShellExecute, ShellExecuteWait

## Example

    #include <MsgBoxConstants.au3>

    Example()

    Func Example()
        ; Run Notepad and wait for the Notepad process to close.
        Local $iReturn = RunWait("notepad.exe")

        ; Display the return code of the Notepad process.
        MsgBox($MB_SYSTEMMODAL, "", "The return code from Notepad was: " & $iReturn)
    EndFunc   ;==>Example