发新话题
打印

运行其他安装程序

可以在主安装程序下运行其他的安装程序。在选择的每个子安装程序都运行完毕后,主安装程序才会结束运行。有两种方法可以实
现这一功能:
    1.调用Dolnstall
    启动由InstallShield生成的安装程序的较好的办法是如下调用Do Install函数:
   (1)为要启动的子安装程序建立一个完整的安装工程;所有由InstallShield生成的文件
对子安装程序的正常运行都是必需的。
    (2)在已启动的主安装工程中,把所有为子安装程序生成的文件放在Setup Files面板
下适当的surportfiles文件夹中。
     提示:给子安装程序的setup.inx一个区别于setup.inx的文件名。
   (3)在父安装脚本调用DoInstall函数。
    例如:
      DoInstall (SUPPORTDIR^"child.inx", "", WAIT);
     提示:要调用DoInstall运行安装程序,必须保证主安装程序与子安装程序由相同版本的Installshield生成,否 则会调用失败。
    2.调用LaunchAppAndWait
    还可以通过调用LaunchApp或LaunchAppAndWait函数运 行一个完整的安装程序。例如,
如果把子安装程序的文件放在了Setup Files面板下,就必须如下调用LaunchAppAndWait函数:
      LaunchAppAndWait(SUPPORT DIR^"testsetup.exe","",WAIT);
    如果子安装程序的文件放在了CD-ROM下.就必须作如下调用:
      LaunchAppAndWait(SRCDISK ^"YouAppFolder\\Setup.exe","",WAIT);
    此外,也可以将子安装程序的文件链接到你的文件组中,将文件安装到目标系统上 ,再
从目标位置运行安装程序。当然,这会把安装文件留在目标系统上直至主安装程序被卸载。
      LaunchAppAndWait(TARGETD IR^"YouAppFolder\\Setup.exe","",WAIT);
      提示:LaunchApp(TARGETDIR^" YouAppFolder\\Setup.exe","");相当于LaunchAppAndWait(TARGETDIR^" YouAppFolder\\Setup.exe","",NOWAIT);

附:调用MSI实例
//用prototype关键字声明函数
prototype RunMsi();    
function RunMsi()
string szCommand,szCmdLine;
begin
   szCommand = WINSYSDIR^"msiexec.exe";  
   LongPathToShortPath(szCommand);
   szCmdLine =TARGETDIR^"msxmlchs.msi";
   LongPathToShortPath(szCmdLine);
   SdShowMsg("正在安装msxml,请稍候...",TRUE);
   Delay(5);
   if (LaunchAppAndWait( szCommand ,"/i"+szCmdLine,WAIT) < 0) then
      MessageBox("数据文件出现错误",WA RNING);      
   endif;

TOP

顶呀

TOP

测试

TOP

测试一下

TOP

ding

TOP

发新话题