Core Function RunWait

From Sputnik Wiki
Jump to: navigation, search
RunWait( <file>, <timeout>, <arguments>, <workdir>, <flag>, <show options> )

Contents

Description

Runs an external program and waits until the program finishes.

Parameters

file

The name of the executable (EXE, BAT, COM, or PIF) to run.

timeout

Optional; Amount of seconds to wait for process to terminate.

Default -1 which means wait forever.

arguments

Optional; The arguments to use.

workdir

Optional; The working directory.

flag

Optional; The "show" flag of the executed program:

@SW_HIDE = Hidden window
@SW_MINIMIZE = Minimized window
@SW_MAXIMIZE = Maximized window

Default runs the program normally.

show options

Optional; Options how to executed program will run:

0 = Run within the current process so that anything printed to console by the run program appears directly on ours.
1 = Run the program within its own window and dont share our console.
2 = Same as 1 but return a string of the STDOUT and STDERROR (Stuff printed to the console).

Default 0.

Return Value

Success: The PID of the process that was launched.

Failure: 0.

Remarks

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.

Example

$val = RunWait('Notepad.exe', 'C:\WINDOWS', @SW_SHOWNORMAL);
// script waits until Notepad closes
MsgBox("Program returned with exit code: $val");

Example of using flag 2 to capture STDOUT (Stuff printed to console)

println("Begin");
$OutputArray = RunWait("Testy.exe", -1, "", "", @SW_SHOW, 2);
println("End");
 
println("Result: " . $OutputArray[0] );
println("STDOUT Text: " . $OutputArray[1] );
println("STDERROR Text: " . $OutputArray[2] );
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox