InstallShield X (10.5) 使用手记之《创建卸载应用的快捷方式》

    技术2022-05-11  77

      记得两年多以前发表了篇 InstallShield Developer 8 使用手记之《创建卸载应用的快捷方式》,都这么久了,也该出个“新版”的了……

      因为最近要做的一个数据库应用的发布包,就打算试下前不久挖到的新版 Install Shield X,本来可以不用它的,可是这次打算做个能自动创建数据库及相关数据库对象的安装包,想起前不久发现 Install Shield X 就有这个功能……嘿嘿,终于找到用新版软件的理由了…… 虽然偶做的只是Windows平台的安装包……

        先说说新版的初体验……

        折腾了两天之久,感受到这个新版(其实现在应该算是旧版了吧?)的 Install Shield X(版本号是10.5 Premier Edition),果然改进了许多,不过很多简单的设置不再“简单”了,不再像以前的8.02那样简单的在界面上随便点几下鼠标就可搞定了。

        虽然有个新的 Project Assistant,可是提到这个 Project Assistant 偶的气就不打一处来……原因嘛……就得从偶要做卸载应用的快捷方式说起……

    想一想8.02版的卸载快捷方式偶都做过,这个新版的InstallShield X又怎能难得住偶?! 找了下Help文档,发现了个“Creating an Uninstallation Shortcut”的主题,一看内容……

    To create an uninstallation shortcut:

    Open the Application Shortcuts page of the Project Assistant. In the More Options section, click Create an uninstallation shortcut.

    高兴!新版就是好,这么简单……赶紧打开界面……嗯?根本没有哇~我找哇找……找了几个小时,偶晕!

    还是没有哇!偶眼神这么差吗?还是偶e文太烂?!不对!

    不管怎么说,偶就是没看到他说的这个设置!怒!

    也许是偶真的不会用,弄错了?!不管他,老办法:“没有枪,没有炮,咱们自己造!”……

     按照两年前的文章,代码拿来……编译……没错,运行完了一看……果然如别人所说……都不能用!……头晕……

      于是偶一通翻文档哇,可偶e文不好哇,google哇,俩小时也没找到有用的哇~看来咱水平太差……不过偶倒是想起了个特殊的方法,使用微软的工具看看Windows到底做了啥……嘿嘿……这一招如果不好使,本文这么多字岂不是都成了废话了……

    具体方法嘛,前一半的工作跟上文一样,参见这篇 InstallShield Developer 8 使用手记之《创建卸载应用的快捷方式》,不过不一样的地方就在于那个函数的内容……

    对于 Install Shield X ,这个函数应该写成这样:

    function  CreateUninstallShortcut()    string strCmdLine, strProductFolder, strIconPath, strItemName;begin    strCmdLine  =  UNINSTALL_STRING  ^   "  -removeonly " ; strProductFolder  =  @ID_STRING19; strIconPath  =  TARGETDIR  ^   " /uninstall.ico " ; strItemName  =   " 卸载 "   +  @ID_STRING4;  //  Create the shortcut.   AddFolderIcon(FOLDER_PROGRAMS  ^  strProductFolder,                      strItemName, strCmdLine,                       "" , strIconPath,  0 "" , NULL );end;

    其实最关键的就是begin后面那句,这就是新版改进了的地方,8.02版需要多一堆罗嗦的代码,新版都省了……

    注释:

    @ID_STRING19你的软件产品在开始菜单里的文件夹名(以前叫程序组),比如SQL Server 的菜单“Microsoft SQL Server”……

    strIconPath = TARGETDIR ^ "//uninstall.ico";//偶为了美观,给他装了个图标,嘿嘿……

    @ID_STRING4 是偶软件产品的名字……

    OK,就这些,快去编译看看结果吧……


    最新回复(0)