您好,欢迎访问三七文档
打包很简单,跟着Wizard走,遇到不明白的地方看看help。反正最后都可以修改的。至于如何做Uninstall快捷方式,需要区分一下IS版本。我用的是InstallShieldDeveloper8.02,与Professional有些微的不同,建议不要用后者,毛病比较多。Developer版本创建快捷方式的时候无法填入一个string,所以Uninstall的快捷方式要在脚本中做。选中InstallScript,在OnFirstUIAfter事件(即安装完成)加入代码szFilename=UNINSTALL_STRING;nResult=StrFind(szFilename,.exe);if((StrFind(szFilename,\)0)&&(nResult=0))thenStrSub(szMsg1,szFilename,0,nResult+4);StrSub(szMsg2,szFilename,nResult+4,200);szFilename=\+szMsg1+\+szMsg2;UNINSTALL_STRING=szFilename;endif;AddFolderIcon(我的程序组,卸载xxx软件,szFilename,INSTALLDIR,WINDIR^System32\\msiexec.exe,0,,NULL);在UNINSTALL_STRING这个IS的系统全局常量里面保存了对当前这个安装程序的卸载参数,但8.02还有点儿毛病,的使用不正确导致无法正确使用。所以在用AddFolderIcon方法创建快捷方式之前,我先处理了一下UNINSTALL_STRING,在参数前面对文件路径加入了。随后用AddFolderIcon在“我的程序组”下创建了一个叫做“卸载xxx软件”的快捷方式,工作路径是INSTALLDIR(无所谓咯),图标文件是系统目录下的System32\\msiexec.exe的第一个图标——你可以用你自己的。OK啦,只是要注意一个问题:程序组创建给当前用户还是所有人?如果你的安装流程中有询问用户安装给个人还是所有人,那么AddFolderIcon会自动根据其设置的参数选择。否则,你可以用这样的代码来修正一下这个问题:if(Is(USER_ADMINISTRATOR,szIsData)=TRUE)thenProgDefGroupType(COMMON);elseProgDefGroupType(PERSONAL);endif;ProgDefGroupType(COMMON)就是告诉相关的函数操作的时候将针对所有人。但如果没有系统管理员权限(比如windows2000/xp),是无法对COMMON环境进行操作的,因此我加了一个判断限制一下。这样程序就很完整了:if(Is(USER_ADMINISTRATOR,szIsData)=TRUE)thenProgDefGroupType(COMMON);elseProgDefGroupType(PERSONAL);endif;szFilename=UNINSTALL_STRING;nResult=StrFind(szFilename,.exe);if((StrFind(szFilename,\)0)&&(nResult=0))thenStrSub(szMsg1,szFilename,0,nResult+4);StrSub(szMsg2,szFilename,nResult+4,200);szFilename=\+szMsg1+\+szMsg2;UNINSTALL_STRING=szFilename;endif;AddFolderIcon(我的程序组,卸载xxx软件,szFilename,INSTALLDIR,WINDIR^System32\\msiexec.exe,0,,NULL);
本文标题:HOWTO
链接地址:https://www.777doc.com/doc-2876546 .html