用InstallShield做安装包,怎样能让它在安装时执行一个EXE文件(应用程序服务器程序)(100分)

  • 主题发起人 主题发起人 yzykjh
  • 开始时间 开始时间
Y

yzykjh

Unregistered / Unconfirmed
GUEST, unregistred user!
用InstallShield做安装包,怎样能让它在安装时执行一个EXE文件(应用程序服务器程序)
 
写安装脚本
 
如何写,请给个实例。
 
我告诉你,你可一定要给我分,最简单的办法是用wise9.02来安装,在你需要的运行文件上设定为自注册,wise9.02里可以设定,installshield里应该也可以设定,这样在安装的过程中就会运行该软件。
 
安装工具一般都有设置“安装后自动运行的程序”,你找一下,肯定可以的。
 
安装时运行某个可执行程序?
很简单,
只要在Script中,
调用LaunchAppAndWait函数即可,三个参数,第一个为程序的全名(包括路径),第二个参数是程序执行时的参数,第三个可设定为WAIT或NOWAIT,分别表示是否等运行完毕后,再进行下一条SCRIPT语句的操作。如果返回值小于0,表示调用失败。
比如下所示,
#define PROGRAM_ADO INSTALLDIR^"mdac28.exe"
安装时,当选择了安装ADO,将作如下操作
function ado_Installing()
begin
if (LaunchAppAndWait(PROGRAM_ADO,"",WAIT)<0) then
MessageBox ("不能执行程序:"+ PROGRAM_ADO ,SEVERE);
endif;
end;

 
我用wise作这样的事,很方便
 
如果要执行的另一个安装程序是第三方提供的安装程序,它可能只有一个可执行的文件。这时就要使用LaunchAppAndWait和LaunchApp函数来启动,它们的原型如下:
   LaunchAppAndWait (szProgram, szCmdLine, lWait);
   LaunchApp (szCommand, szCmdLine);
  这两个函数都是用来启动一个应用程序,它们唯一的区别是LaunchApp函数直到已启动的应用程序被关闭或中断后,流程才会被返回,而LaunchAppAndWait可以立即返回流程。参数szProgram和szCommand都是用来指定要启动的应用程序文件全名,但对于szProgram来说,若应用程序没有指定路径和文件扩展名,LaunchAppAndWait不会启动该应用程序,而对于szCommand来说,若没有指定应用程序的路径,LaunchApp将在当前目录、Windows目录、Windows系统目录以及其他PATH环境变量指定的目录中进行查找。szCmdLine用来指定应用程序执行时的命令行参数,若没有,则将此参数设为NULL。lWait用来指定流程的返回方式,它可以是NOWAIT(立即返回)或WAIT(直到应用程序关闭或中断才将流程返回)。
   如果需要启动的应用程序需要的DLL文件不在Windows系统目录中,则需要调用ChangeDirectory函数来改变调用DLL的目录,例如下面的过程是通过LaunchAppAndWait函数执行另一个安装程序:
   (1) 启动InstallShield 5.5,将主安装项目调入。
   (2) 切换到项目工作区窗口的"Setup Files"页面,将次安装项目要发布的安装媒介下的文件全部调入用户指定的/目录下。
   (3) 在主安装项目的脚本程序中,添加下列语句:
  NUMBER nResult;
  STRING szDir;
  program
   ...
   szDir = SUPPORTDIR;
   StrRemoveLastSlash (szDir);
   ChangeDirectory (szDir);
   LaunchAppAndWait ( SUPPORTDIR ^"Setup.exe " , "" ,WAIT);
  endprogram
  (4) 将项目工作区窗口切换到Media页面,单击Media Build Wizard项,创建新的媒介。
  (5) 编译并运行。
具体看一下这个
http://www.delphiit.com/down_view.asp?id=398
InstallShield简明使用教程
 
多人接受答案了。
 
后退
顶部