Core Function RunWait
(→show options) |
(→Example) |
||
Line 67: | Line 67: | ||
// script waits until Notepad closes | // script waits until Notepad closes | ||
MsgBox("Program returned with exit code: $val"); | MsgBox("Program returned with exit code: $val"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Example of using flag 2 to capture STDOUT (Stuff printed to console) | ||
+ | |||
+ | <syntaxhighlight lang="sputnik"> | ||
+ | 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] ); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Category:Core Function]] | [[Category:Core Function]] |
Revision as of 22:51, 22 April 2012
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] );