Function Reference

Run

外部プログラムを起動します。

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

 

パラメータ

program 実行するプログラム(EXE, BAT, COM, PIF)のフルパス (注意を参照)
workingdir [オプション]作業ディレクトリ名。プログラムのパスではありません。
show_flag [オプション]実行するプログラムの表示状態を切り替えます。
   @SW_HIDE = ウィンドウを隠す (Defaultキーワードの場合も同様)
   @SW_MINIMIZE = ウィンドウを最小化
   @SW_MAXIMIZE = ウィンドウを最大化
opt_flag [オプション] 親プロセスと子プロセスがどのように連携するかに関連するさまざまなオプションを制御
  0x1 ($STDIN_CHILD) = 子プロセスのSTDINストリームにハンドルを渡します。
  0x2 ($STDOUT_CHILD) = 子プロセスのSTDOUTストリームにハンドルを渡します。
  0x4 ($STDERR_CHILD) = 子プロセスの STDERRストリームにハンドルを渡します。
  0x8 ($STDERR_MERGED) = STDOUTとSTDERRに同じハンドルを渡します。 $STDOUT_CHILDと$STDERR_CHILDを両方設定するのと同じです。
  0x10 ($STDIO_INHERIT_PARENT) = 子プロセスに親プロセスのSTDIOストリームを渡します。 このフラグは他のSTDIOと組み合わせることはできません。 このフラグは親がコンソールアプリケーションとしてコンパイルされる場合にのみ使用できます。
  0x10000 ($RUN_CREATE_NEW_CONSOLE) = 子コンソールプロセスは親プロセスのウィンドウを使用する代わりに独自のウィンドウを作成します。 このフラグは親がコンソールアプリケーションとしてコンパイルされる場合にのみ使用できます。

 

返し値

成功: 実行したプロセスのPID(プロセス識別値)。
失敗: 0を返し@errorに非ゼロを設定します。

 

注意

スペースを含むパスはコーテーションで囲む必要があります。

DOSコマンド実行をするためには Run(@ComSpec & " /c " & 'commandName', "", @SW_HIDE)としてください。"/c"の前の" "を忘れないようにしてください。

指定されたプログラムを開始後スクリプトは継続して実行されます。指定したプログラムが終了するのを待ってスクリプトの続きを実行する場合はRunWait関数を代わりに使って下さい。

Standard I/Oパラメータに適切な値を設定することでStderrRead関数、StdinWrite関数、StdoutRead関数を通じて子プロセスと連携動作することができます。フラグの値を組み合わせることで(あるいはConstants.au3内で定義されている$STDERR_CHILD、$STDIN_CHILD、$STDOUT_CHILDを使用することで)複数のストリームを管理できます。

ストリームを閉じるためには次の条件が満たされる必要があります: 1) 子プロセスがそのストリーム終端を閉じている。(これは子プロセスでの処理です)。 2) AutoItがキャプチャーしたストリームの全データを読み込んだ。 3) 子にSTDINが指定されている場合、ストリームを閉じるためのStdinWrite() が呼び出された。一度全てのストリームが不必要であることが判明すると、全内部リソースが自動的に解放されます。
StdioCloseを使用して強制的にSTDIOストリームを閉じることも可能です。

 

関連

RunWait, RunAs, RunAsWait, ShellExecute, ShellExecuteWait, StderrRead, StdinWrite, StdoutRead, StdioClose, ProcessClose, ConsoleRead

 


Run(@WindowsDir & "\Notepad.exe", "", @SW_MAXIMIZE)