InstallShield 12 Premier卸载程序快捷方式
2014-11-05 14:34
369 查看
本文主要是针对艾泽拉斯之海洋女神出品(四) --高级设置二 中的【完美卸载】,做出自己的看法,不针对任何人。
程序即将发布,但面临打包问题。花了两天时间,在网上找资料及学习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......
程序即将发布,但面临打包问题。花了两天时间,在网上找资料及学习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......
相关文章推荐
- InstallShield 为卸载程序添加快捷方式
- InstallShield 创建卸载快捷方式
- 用InstallShield制作卸载快捷方式
- 程序监听本身被卸载后自动删除快捷方式?| 判定快捷方式已存在
- VS2008 c# 创建快捷方式 卸载程序
- dotnet程序安装包添加卸载快捷方式
- InstallShield 6.2 创建卸载快捷方式
- InstallShield中如何制作应用程序的卸载快捷方式
- android程序卸载后无法删除桌面快捷方式的解决办法
- 程序监听本身被卸载后自动删除快捷方式?| 判定快捷方式已存在
- HOWTO:InstallShield中如何制作应用程序的卸载快捷方式
- InstallShield 6.2 创建卸载快捷方式
- InstallShield中添加一个卸载快捷方式或设置反卸载 - DISK1TARGET
- InstallShield X (10.5) 使用手记之《创建卸载应用的快捷方式》
- InstallShield学习笔记(3)-建立卸载程序的快捷方式
- 用VB6自带打包工具创建桌面快捷方式和卸载程序
- .net 程序安装包卸载快捷方式
- HOWTO:InstallShield中如何制作应用程序的卸载快捷方式
- winform中为安装程序添加卸载的快捷方式
- InstallShield 6.2 创建卸载快捷方式