InstallShield 12 Premier卸载程序快捷方式

本文主要是针对艾泽拉斯之海洋女神出品(四) --高级设置二 中的【完美卸载】,做出自己的看法,不针对任何人。

        程序即将发布,但面临打包问题。花了两天时间,在网上找资料及学习InstallShield。主要学习资料来源于海洋女神博客。最终将InstallShield 12 Premier 搭建好。马上动手实践,期待见证时刻。

亲身下河知深浅!因为有做程序的功底,再结合网上的资料,前段进展很是乐观。但是,快要结束时困难来了。卸载程序!卸载快捷方式!

看了海洋女神的博客---完美卸载 一节,自己动手实践。卸载程度时还是不行!以为是代码错误,继续检查,编译,DEBUG....还是不行!关键问题在于:

AddFolderIcon ( szProgramFolder, szItemName, szCommandLine, szWorkingDir, szIconPath, nIcon, szShortCutKey, nFlag );

此函数中的 szCommandLine参数!

出自海洋女神博客代码:

function OnFirstUIAfter()

STRING szfilename,szFolder ,szmsg1,szmsg2;

NUMBER nresult;

begin

//创建删除快捷方式

szfilename = UNINSTALL_STRING +" /UNINSTALL";

nresult = StrFind(szfilename,".exe");

if nresult >=0 then

StrSub(szmsg1,szfilename,0,nresult + 4);

StrSub(szmsg2,szfilename,nresult + 4,200);

LongPathToQuote(szmsg1, FALSE );

LongPathToQuote(szmsg2, FALSE );

szfilename = "/"" + szmsg1 + "/"" +szmsg2;

endif;

AddFolderIcon(FOLDER_PROGRAMS^"Test","Uninstall",szfilename,WINDIR,"",0,"",REPLACE);

End;

我们来看给AddFolderIcon函数中的szCommandLine参数,所传的值为:szfilename,而szfilename = UNINSTALL_STRING +" /UNINSTALL";

经过查找帮助文档中对UNINSTALL_STRING的解释,这样赋值没问题;但后来联想到命令行语句,随手就查了在InstalShield中的Setup.exe命令行的解释说明,卸载参数为:/uninst。所以就想到既然UNINSTALL_STRING有预定义,那么卸载程序命令也应该有预定义,要不然InstallSheild默认自带的卸载是如何执行的;所以就在帮助文档中,查找:UNINST开头的,想不到真有。于是调试程序,取出UNINST的值与szfilename = UNINSTALL_STRING +" /UNINSTALL";对比之,顿时拨云见日。原来szfilename = UNINSTALL_STRING +" /UNINSTALL"; 赋值时出现问题。问题找到,解决不用2分钟。

经过在Win7 + InstallShield 12 调试的代码应该为:

szFileName = UNINSTALL_STRING + " -UNINSTALL";
nResult = StrFind(szFileName,".exe");
if nResult >= 0 then
StrSub(szMsg1, szFileName, 0, nResult + 4);
StrSub(szMsg2, szFileName, nResult + 4,200);
LongPathToQuote(szMsg1, FALSE);
LongPathToQuote(szMsg2, FALSE);
szFileName = "\"" + szMsg1 + "\"" + szMsg2;
endif;

AddFolderIcon(FOLDER_PROGRAMS^"Test","Uninstall",szfilename,WINDIR,"",0,"",REPLACE);

在此感谢海洋女神,感谢CSDN......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值