you never doubt youself,I belive!

InstallShield LaunchAppAndWait运行另一个程序并等待该程序终止[转]

上一篇 / 下一篇  2012-10-09 16:59:09 / 个人分类:InstallShield

  • LaunchAppAndWait
    语法:LaunchAppAndWait (szProgram, szCmdLine, lWait);
    说明:LaunchAppAndWait函数运行由szProgram指定的带有szCmdLine指定的命令行参数的应用程序。第三个参数,lWait指示安装在继续前是否要等待直到运行的应用程序终止。
      一个安装程序只能监控由szProgram指定的应用程序;如果该应用程序要运行其它应用程序或进程,安装程序不能监控它们。因此,安装程序将在第一个应用程序结束后继续,即使那时由第一个应用程序运行的其它应用程序仍在运行。注意如果运行的应用程序终止失败,则安装程序将无限等待运行的应用程序完成。
    参数:
    szProgram
    指定要被运行的应用程序的文件名。建议要指定应用程序的完整路径和文件名。如果你不包括一个路径,InstallShield将使用被Windows API 函数CreateProcess使用的相同的查找次序来定位文件。如果文件未能在这些位置找到,函数将失败。
      如果应用程序的全限定名包括长文件夹名和/或一个长文件名,在把szCommand传递给LaunchAppAndWait之前先把它传递给LongPathToQuote。
    szCmdLine
    指定传递给运行的应用程序的命令行参数。为运行没有命令行参数的应用程序,传递一个空字符串。
    lWait
    指定安装程序在继续前是否要等待运行的应用程序终止。在该参数位置传递下列预定义常量之一:
    NOWAIT:指定安装程序在运行应用程序后立即继续,应用程序将和安装程序脚本同时运行。注意使用该参数等效于调用函数LaunchApp。
    WAIT:指定安装程序必须等待直到由该函数运行的应用程序终止。
    返回值:
    1:表明应用程序成功运行。
    < 0:表明应用程序未能运行。
    注解:
    ·InstallShield 安装程序使用函数CreateProcess。在InstallShield运行应用程序后,它查找装入的应用程序的窗口句柄。如果它找到窗口句柄,则它在继续前等待直到应用程序窗口消失。
    ·安装程序不能监控一个不创建窗口的应用程序。如果指定的应用程序没有创建一个窗口,安装程序在运行应用程序后立即继续。注意应用程序的窗口不需要可见,但它必须存在,以便让安装程序等待。
    ·一些应用程序试图装入DLLs并且当那些DLLs不能被定位时不能正确运行。为确保一个应用程序能找到它需要的DLLs,有必要在调用LaunchAppAndWait前改变到包含可执行应用程序的目录。为改变当前目录,调用ChangeDirectory函数。
    ·如果运行的应用程序终止失败,则安装程序将无限等待运行的应用程序完成。
    ·LaunchAppAndWait以一个全屏DOS窗口来运行DOS程序。为以一个不同类型的窗口来运行一个DOS程序,你必须直接调用Windows APIs。

  • 示例
if (LaunchAppAndWait (WINDIR^"NotePAD.EXE", "", WAIT) < 0) then
MessageBox ("Unable to launch "+ WINDIR^"NotePAD.EXE" +".",SEVERE);
endif;

TAG:

 

评分:0

我来说两句

Open Toolbar