在后面的内容中,主要解答以下几个经常有朋友问到,却又往往得不到很好的解决的问题:如何创建卸载快捷方式?为什么卸载的时候不执行OnMaintUIBefore和OnMaintUIAfter?为什么卸载的时候不执行OnUnInstall?为什么卸载的时候并没有调用OnMaintUIBeforeXXXX或者OnUnInstall,甚至连OnBegin、OnAppSearch、OnShowUI等等事件处理函数都没有调用?为什么第二次运行安装程序的时候毫无提示就卸载了以前的版本并没有调用OnMaintUIBeforeXXXX或者OnUnInstall?--------------------------------------------------------------------------------关于如何创建卸载快捷方式的问题,请参考:〈InstallShield:CreatingUninstallationShortcut创建卸载快捷方式〉一文请记住那个表格。在脚本中创建卸载快捷方式最好的方法就是用用于定义常量UNINSTALL_STRING提供的值。而在IS操作界面中创建卸载快捷方式最好参考帮助中(参考该文)表格的方法,根据不同的项目类型采用不同的方法。如果用IS提供的方便功能创建的卸载快捷方式有些毛病,最好改改——至于原因,在后面会提到。--------------------------------------------------------------------------------为什么卸载的时候不执行OnMaintUIBefore和OnMaintUIAfter?为什么卸载的时候不执行OnUnInstall?在GeneralInformation->ProjectProperties你能看到:EnableMaintenance这一选项。如果设置为Yes,那么当用户在一台已经安装了该软件的计算机上再次运行安装程序,则会自动运行OnMaintUIBefore和OnMaintUIAfter事件处理函数中的脚本。如果设置为No,那就会调用UnInstall事件处理函数的脚本。那么,如果卸载的时候不执行这两个事件处理函数的脚本,就要检查一下这一设置了。但(呵呵,这里有个“但”),卸载的时候也可能不运行这两个函数以及OnUnInstall,耐心看下去吧。--------------------------------------------------------------------------------为什么卸载的时候并没有调用OnMaintUIBeforeXXXX或者OnUnInstall,甚至连OnBegin、OnAppSearch、OnShowUI等等事件处理函数都没有调用?1、安装程序如果运行在“安静”模式下,则不会执行这些事件处理脚本。/M{ProductCode}/uninst这样的调用(请参考:〈InstallShield:CreatingUninstallationShortcut创建卸载快捷方式〉一文)。2、如果不是在“安静模式”,用户在控制面板的添加删除程序中,直接点了列在程序项后面的“删除”而不是“更改”,则会运行在REMOVEONLY模式下。此时不出现维护界面
installshield卸载实现 来自淘豆网m.daumloan.com转载请标明出处.