Posted by Catur Nugroho | File under :
Autoit.Run()

Runs an external program.
Run ( "program" [, "workingdir" [, show_flag[, opt_flag ]]] ).

Parameters :
  1.  program : The full path of the program (EXE, BAT, COM, or PIF) to run (see remarks).
  2.  workingdir :  [optional] The working directory. This is not the path to the program.
  3.  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
  4.  opt_flag :[optional] Controls various options related to how the parent and child process interact.
    0x1 ($STDIN_CHILD) = Provide a handle to the child's STDIN stream
    0x2 ($STDOUT_CHILD) = Provide a handle to the child's STDOUT stream
    0x4 ($STDERR_CHILD) = Provide a handle to the child's STDERR stream
    0x8 ($STDERR_MERGED) = Provides the same handle for STDOUT and STDERR. Implies both $STDOUT_CHILD and $STDERR_CHILD.
    0x10 ($STDIO_INHERIT_PARENT) = Provide the child with the parent's STDIO streams. This flag can not be combined with any other STDIO flag. This flag is only useful when the parent is compiled as a Console application.
    0x10000 ($RUN_CREATE_NEW_CONSOLE) = The child console process should be created with it's own window instead of using the parent's window. This flag is only useful when the parent is compiled as a Console application.
Return Value
Success: The PID of the process that was launched.
Failure: Returns 0 and sets @error to non-zero.

Remarks
Paths with spaces need to be enclosed in quotation marks.

To run DOS (console) commands, try Run(@ComSpec & " /c " & 'commandName', "", @SW_HIDE) ; don't forget " " before "/c"

After running the requested program the script continues. To pause execution of the script until the spawned program has finished use the RunWait function instead.

Providing the Standard I/O parameter with the proper values permits interaction with the child process through the StderrRead, StdinWrite and StdoutRead functions. Combine the flag values (or use $STDERR_CHILD, $STDIN_CHILD & $STDOUT_CHILD, defined in Constants.au3) to manage more than one stream.

In order for the streams to close, the following conditions must be met: 1) The child process has closed it's end of the stream (this happens when the child closes). 2) AutoIt must read any captured streams until there is no more data. 3) If STDIN is provided for the child, StdinWrite() must be called to close the stream. Once all streams are detected as no longer needed, all internal resources will automatically be freed.
StdioClose can be used to force the STDIO streams closed.

Source : Autoit Help Documentary

Source Code Using C#

//add namespace
using AutoItX3Lib;

//call variable
private AutoItX3 _autoit = new AutoItX3();

private void button1_Click(object sender, EventArgs e)
        {
            //call nodepad
            string strRun = @"notepad.exe";

            //call another application
            //string strRun = @"C:\Program Files\Notepad++\notepad++.exe";

            //execute the program
            _autoit.Run(strRun, "", 1);
        }

0 comments:

Post a Comment