我想在安装结束前调用另一个程序,我知道要用到它的LaunchAppAndWait()函数,但不知道应该在哪个地方添加脚本,帮帮忙,谢谢啦!
解决方案 »
- 源代码如何用~~~
- 为何在OpenPictureDialog运行时jpeg格式的图片就显示不出来?
- 请 rikky(读书、心知、生活) 进来领分
- 我用VC++编写了一个动态连接库,在Delphi中调用总是出错,为什么?
- [求助]delphi + sql 2000 用什么控件操作的性能好些.
- delphi mscomm 如何发送十六进制‘010102’到下位机,并接收下位机返回的十六进制数‘01 01 02 F2 00 D4 CA’,谢谢
- 关于复制对象的问题???(Assign or :=)
- 一个超简单问题?请帮忙?
- 300分!!急急急!!各位大虾有提供关于报表的控件带源码的
- 在Delphi的代码编辑器中,将一段代码大小转换的快捷键是什么??
- 请问如何使用LISTVIEW的FINDCAPTION
- web服务服务器端设置
18.4 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。
我是不知道在哪里添加LaunchAppAndWait()
!!
LaunchAppAndWait(TARGETDIR^"myex.exe","",WAIT);
MessageBox(TARGETDIR^"myex.exe",MB_OK);//for debug
第二句正确执行了,但LaunchAppAndWait那一句却没执行,难道这个时候目标文件还没产生??(注:我添在OnFirstUIAfter()的最后)
不懂...