我想用INSTALL SHIELD做一个打包安装,并且建立一个卸载的快捷方式,请问如何制作呢!谢谢!

解决方案 »

  1.   

    打包很简单,跟着Wizard走,遇到不明白的地方看看help。反正最后都可以修改的。至于如何做 Uninstall 快捷方式,需要区分一下 IS 版本。
    我用的是 InstallShield Developer 8.02,与 Professional 有些微的不同,建议不要用后者,毛病比较多。Developer版本创建快捷方式的时候无法填入一个string,所以Uninstall 的快捷方式要在脚本中做。
    选中 InstallScript,在 OnFirstUIAfter 事件(即安装完成)加入代码 szFilename = UNINSTALL_STRING;
    nResult = StrFind(szFilename,".exe");
    if ( ( StrFind(szFilename,"\"") < 0 ) && ( nResult >= 0 ) ) then
    StrSub(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) then
            ProgDefGroupType (COMMON);
        else
            ProgDefGroupType (PERSONAL);
        endif;
    ProgDefGroupType (COMMON)就是告诉相关的函数操作的时候将针对所有人。但如果没有系统管理员权限(比如windows2000/xp),是无法对COMMON环境进行操作的,因此我加了一个判断限制一下。这样程序就很完整了:    if (Is (USER_ADMINISTRATOR, szIsData) = TRUE) then
            ProgDefGroupType (COMMON);
        else
            ProgDefGroupType (PERSONAL);
        endif; szFilename = UNINSTALL_STRING;
    nResult = StrFind(szFilename,".exe");
    if ( ( StrFind(szFilename,"\"") < 0 ) && ( nResult >= 0 ) ) then
    StrSub(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);                 
    呵呵,独家秘籍哦,is8.02还是有些小脾气的 x]
      

  2.   

    Target:<TARGETDIR>\*.exe
    Parameters:可不写
    Start:<TARGETDIR>
    Shortcut:None
    Run:默认
    IconFile:<TARGETDIR>\*.exe
    ICON:显示你运行文件的第几个图标
    <TARGETDIR>是获取运行文件的路径
      

  3.   

    晕倒...>哪如何增加卸载的快捷方式呢???谢谢!!!
    >>AddFolderIcon("我的程序组", "卸载xxx软件", szFilename,
                                INSTALLDIR, WINDIR ^ "System32\\msiexec.exe", 0, "",NULL);           >>用 AddFolderIcon 在“我的程序组”下创建了一个叫做“卸载xxx软件”的快捷方式,工作路径是INSTALLDIR(无所谓咯),图标文件是系统目录下的 "System32\\msiexec.exe" 的第一个图标——你可以用你自己的。这不就是么?
      

  4.   

    AddFolderIcon 的用法:
    AddFolderIcon(你要创建的程序组名,你要创建的快捷方式名,快捷方式要执行的文件名,执行的程序工作目录,图标文件,图标序号,最后一个不记得我现在不在公司 呵呵)