我在程序安装完成后的界面 上放了几个CHECKBOX,现在想根据 选择CHECKBOX的不同,则点完成后可以来启动不同的程序我写了个函数:只是先弹出一个 MESSBOX但我在完成 的 DOACTION 里,以及 CHECKBOX的DOACTON里 都加了那个弹出函数!可不管用我用的InstallShield是9.0,创间的是base instll 项目!我看到别的条件里有什么, Install and Install='Action' 等的动西希望大家帮帮我!
调试欢乐多
关键词:OnMoved、SdFinish
1.InstallShieldX脚本中有一个OnMoved事件。这个事件在需要安装的文件拷贝完成之后触发;
2.SdFinish是一个标准对话框函数,函数原型为SdFinish ( szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2 );从参数中可以发现,这里只提供最多两个选项。实例代码如下:
function OnMoved()
STRING szTitle;
STRING szMsg1, szMsg2,szOpt1,szOpt2;
BOOL bvOpt1, bvOpt2;
STRING szApplicationPath,szApplicationCmdLine,szCmdLine;
begin
if (MAINTENANCE) then return 0;endif;//如果不是安装状态,比如修改/卸载状态的时候,则不执行。
szTitle = "安装完成";//对话框的标题
szMsg1 = "%P 安装已经完成.\n" +
"请根据需要选择下面的选项.";//%P为软件产品名称
//如果要单独在这里设置产品名称,在之前使用如下两句
// szProductName = "某某软件";
// SdProductName (szProductName); szMsg2 = "点击‘完成’按钮完成%P安装.";
szOpt1 = "阅读自述文件";//如果这里为空,则表示只有一个选项
szOpt2 = "运行程序";
SdFinish (szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);
if (bvOpt1) then
LaunchApp ('notepad.exe',TARGETDIR ^ "\\readme.txt");//LaunchApp 用来运行某外部程序
endif;
if (bvOpt2) then
LaunchApp (TARGETDIR ^ "\\App.exe","");
endif;
end;
谢谢了!
InstallScript MSI project 可以转换为InstallScript Project:菜单project->Convert to InstallScript Project.
这是InstallShield自己本身的问题