InstallShield12的半脚本(InstallScript MSI Project)安装包中,创建反安装(卸载程序)快捷方式

//两个函数的定义,放在program等程序段的最前面。
prototype ExFn_CreateUnInstall(string);//参数是:create:创建,delete:删除
//删除目录和快捷方式
export prototype ExFn_DeleteFolderIcon(string,string);//两个函数的实现部分:
//创建反安装快捷方式,放任意位置即可
function ExFn_CreateUnInstall(flag)
string szfilename,szFolder ,szmsg1,szmsg2;
number nresult;
begin
if flag = "create" then
// Add uninstall icon
szfilename = UNINSTALL_STRING +" /UNINSTALL";
nresult = StrFind(szfilename,".exe");
if nresult >=0 then
StrSub(szmsg1,szfilename,0,nresult + 4);
StrSub(szmsg2,szfilename,nresult + 4,200);
szfilename = "\"" + szmsg1 + "\"" +szmsg2;
endif;
AddFolderIcon(szFolder,"卸载 "​​mailto:+@PRODUCT_NAME,szfilename,WINDIR,​​);
szFolder
+"​​javascript:void(0)​​​;
szfilename = TARGETDIR+ "\\存储过程测试​​​javascript:void(0)​​​";
AddFolderIcon(szFolder,"启动 "​​​+@PRODUCT_NAME,szfilename,TARGETDIR​​+"\\存储过程测试","",0,"",REPLACE);
//打开目录
ShowProgramFolder (szFolder, SW_SHOW);
Delay (3);
else
//删除快捷方式
szFolder = +"​​javascript:void(0)​​​;
szfilename = UNINSTALL_STRING +" /UNINSTALL";
nresult = StrFind(szfilename,".exe");
if nresult >=0 then
StrSub(szmsg1,szfilename,0,nresult + 4);
StrSub(szmsg2,szfilename,nresult + 4,200);
szfilename = "\"" + szmsg1 + "\"" +szmsg2;
endif;
ExFn_DeleteFolderIcon(szFolder,szfilename);

szFolder =
szfilename = TARGETDIR+ "\\存储过程测试​​​javascript:void(0)​​​";
ExFn_DeleteFolderIcon(TARGETDIR,szfilename);
endif;
end;

//删除目录和快捷方式
function ExFn_DeleteFolderIcon(FOLDER,ICON)
begin
// Display the folder.
//ShowProgramFolder (FOLDER, SW_SHOW);
//Delay (3);
// Delete the 'Notepad Example' icon.
if (DeleteFolderIcon (FOLDER, ICON) < 0) then
MessageBox ("删除快捷方式失败.ICON:"+ICON, SEVERE);
endif;
// Delete the 'Example folder' icon.
if (DeleteProgramFolder (FOLDER) < 0) then
就不会失败了
//MessageBox ("删除目录失败.FOLDER:"+FOLDER, SEVERE);
endif;
end;

欢迎沟通及共同进步

越折腾越快乐!