基 础 函 数 参 考


Run

运行外部程序.

Run ( "程序" [, "工作目录" [, 显示 [, 选项 ]]] )

参 数

程序 运行程序的完整路径(文件类型: EXE, BAT, COM, 或 PIF. 见备注).
工作目录 [可选参数] 工作目录. 不是程序的路径.
显示 [可选参数] 程序执行时的显示状态:
@SW_HIDE = 隐藏窗口 (或使用关键字 Default)
@SW_MINIMIZE = 最小化窗口
@SW_MAXIMIZE = 最大化窗口
选项 [可选参数] 指定控制父进程与子进程互动的标志.
  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 被设置为非 0 值.

备 注

如果路径包含空格, 必须添加英文引号.

运行 DOS(控制台)命令, 请使用 Run(@ComSpec & " /c " & "commandName", "", @SW_HIDE); 不要忘了 "/c" 前面的一个空格

程序运行后脚本将继续执行后面的语句. 要暂停脚本的执行, 直到程序完成, 请使用 RunWait 函数代替.

提供 "StderrRead", "StdinWrite" 与 "StdoutRead" 函数的标准 I/O 参数与正确的特征值, 可以与子进程互动.
结合标志值(或使用 $STDERR_CHILD, $STDIN_CHILD & $STDOUT_CHILD, 由 Constants.au3 文件定义) 管理多个数据流.

使流关闭, 必须满足以下条件:
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)

provider with jb51.net (unicode)