请教installshield professional 7.0如何实现多个安装程序?如果正确除100分另送100

liujinhai888 2003-08-23 04:39:35
我用的是installshield professional 7.0,我想实现多个程序安装。比如:有两个程序,a.exe,setup.exe(setup是已经制作完的安装程序).现在我想把这个两个程序作在一起,a.exe制作成主安装程序,然后在运行a.exe时,setup.exe同时自动运行。怎样才能实现?我想用 LaunchAppAndWait ( TARGETDIR^"setup.exe " , "" ,WAIT),但是不知道用在哪里?还有别的办法么?
...全文
166 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujinhai888 2003-08-29
  • 打赏
  • 举报
回复
我就是想整合到一个文件中去阿!可是installshield professional 7.0,我没有发现如何操作!
所以只想到用LaunchAppAndWait。但是如何Setup.exe安装到SUPPORTDIR后,安装就结束了阿!LaunchAppAndWait就不能用了。
源代码是这样的
function OnFirstUIBefore()
number nResult;
string szTitle, szMsg;
string svDir;

begin
if( !( LOGFILEMODE = LOGFILEMODE_SIDEBYSIDE_SINGLE && PRODUCT_INSTALLED ) ) then
TARGETDIR = PROGRAMFILES ^ IFX_COMPANY_NAME ^ IFX_PRODUCT_NAME;
endif;
svDir = TARGETDIR;


Dlg_Start:
// Beginning of UI Sequence

Dlg_SdAskDestPath2:
if( !( LOGFILEMODE = LOGFILEMODE_SIDEBYSIDE_SINGLE && PRODUCT_INSTALLED ) ) then
szTitle = "";
szMsg = "";
nResult = SdAskDestPath2( szTitle, szMsg, svDir );
TARGETDIR = svDir;
endif;
if (nResult = BACK) goto Dlg_Start;
//
Dlg_ObjDialogs:
nResult = ShowObjWizardPages( nResult );
if (nResult = BACK) goto Dlg_SdAskDestPath2;
// LaunchAppAndWait ( TARGETDIR^"MapX401.exe " , "" ,WAIT); return 0;

end;
请问

LaunchApp(COMMONFILES^'MapX401.exe',"");应该放到哪里呢?
踏岸寻柳 2003-08-29
  • 打赏
  • 举报
回复
除了可以用函数LaunchAppAndWait外,还有一个函数是专门来解决你的这种问题的 :)
DoInstall

原形如下:
DoInstall(SUPPORTDIR^"Setup.exe", "", WAIT);

就是将Setup.exe安装到目录SUPPORTDIR下后,调用函数DoInstall执行第二个安装程序,参数的用法和LaunchAppAndWait是一样的。

踏岸寻柳 2003-08-29
  • 打赏
  • 举报
回复
两种解决方法: :)
1. 做成一个安装程序:
将aa.exe、mapx.exe包含的数据信息整合到一个安装文件中去,这个做起来应该是比较简单的。为什么不尝试一下呢!
2. 就用你说的LaunchAppAndWait函数:
如果aa.exe、mapx.exe中包含的数据并没有很直接的联系的话,你可以在执行aa.exe时任意时刻来LaunchAppAndWait执行mapx.exe,函数LaunchAppAndWait的第二个参数可忽略,第三个参数可以是等待,也可以是不等待,取决于你的要求。如:
#define PROGRAMNAME "mapx.exe"
if (LaunchAppAndWait (PROGRAMNAME, "", nWait) < 0) then
MessageBox("调用程序"+ PROGRAMNAME +"失败", SEVERE);
endif;
liujinhai888 2003-08-28
  • 打赏
  • 举报
回复
是这样,我们自己做了一个程序叫aa.exe,这个程序需要地图,所以需要安装mapx.exe(是已经做好的安装程序)。现在我想把这两个做在一个安装软件包里面,以后我只要安装aa.exe,同时也把mapx.exe一起安装上了,就不再需要先手动安装aa.exe,再手动安装mapx.exe了。
踏岸寻柳 2003-08-28
  • 打赏
  • 举报
回复
问题描述不是很清晰 :)

1. 只有两个程序(a.exe,setup.exe)?
2. 做成可执行的安装程序后应该就是多个文件吧,程序文件a.exe、setup.exe已经打包在其中了吧!
3. 安装这个打包后的可执行程序时,两个程序文件a.exe、setup.exe会被释放出来到本地硬盘。
4. 释放出来后(当然,主安装程序已经在运行了),执行setup.exe即可(不过这个setup.exe不是主安装程序的setup.exe,而是释放到TARGETDIR路径下的一个文件)。
liujinhai888 2003-08-27
  • 打赏
  • 举报
回复
还有没有能具体一点的阿!
我想早点给分啊,见者有分
K_A_N 2003-08-27
  • 打赏
  • 举报
回复
关注
jy2004 2003-08-26
  • 打赏
  • 举报
回复
好办法
sunhz99 2003-08-25
  • 打赏
  • 举报
回复
up
caiyi0903 2003-08-25
  • 打赏
  • 举报
回复
关注ing
AliasKavin 2003-08-24
  • 打赏
  • 举报
回复
只要在你的主安装程序中的任何步骤,中运行Setup.exe就可以了~~
你的TARGETDIR应该代表的是要安装的目标目录,其中不会有Setup.exe的.

4,164

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 一般软件使用
社区管理员
  • 一般软件使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧