先看看注册表Delphi5的反安装。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Delphi5
下有两项值
UninstallString="C:\WINNT\IsUninst.exe -f\"C:\Program Files\Borland\Delphi5\Uninst.isu\" -cC:\WINNT\System32\D5UNINST.DLL
DisplayName="Borland Delphi 5
UninstallString实说明调用哪个文件进行反安装
DisplayName是说明在控制面板“安装/删除”中显示的内容
开始菜单不过是一个文件夹只需调用UninstallString所指的文件就行了通常的软件有安装日志*.inf,*.ini文件,记录下来都安装了那些文件,对系统作了那些改动。
反安装文件就按照该日志进行删除和改动。然后把自己也删除掉。至于反安装文件吗,自己去写一个不就得了。

解决方案 »

  1.   

    直接加一个调setup.exe的快捷方式(Installshield6.2)
      

  2.   

    在Script内的function OnFirstUIAfter()加入以下程序:
    RegDBSetKeyValueEx("\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"+PRODUCT_GUID,
                         "UninstallString" , REGDB_STRING ,DISK1TARGET+"\\setup.exe",-1);
        
      

  3.   

    关键是取得setup.exe的位置DISK1TARGET+"\\setup.exe
      

  4.   

    AddFolderIcon (FOLDER_PROGRAMS ^ "\\MyApp", "删除app",'"' + SRCDIR^"Setup.exe"+ '"',szDir+"\\卸载","",0, "", REPLACE);
      

  5.   

    首先在:Resources页中的Shell Objects/Start Menu/Programs/你的应用程序下新建一个ShortCut键值的Target:<UNINSTALL_STRING>  Start In:<DISK1TARGET> File Group:选择你想删除的程序组.
    然后在:Scripts页中:函数 OnMaintUIBefore()和OnFirstUIBefore()下加一名话:
        UNINSTALL_STRING = DISK1TARGET^"Setup.exe"; 
    即可。
    最后祝你成功,如果还有什么不明白的,E-mail联系:[email protected]
      

  6.   

     szWorkingDir    = WINDIR;
         //szIconPath      = TARGETDIR+@PRODUCT_KEY;
         szIconPath      = PROGRAMFILES+"InstallShield Installation Information\\"+PRODUCT_GUID+"\\setup.exe";
         szItemName      = "卸载 "+@PRODUCT_NAME
         //szProgram       = szIconPath;
         svTmp  = PROGRAMFILES+"InstallShield Installation Information\\"+PRODUCT_GUID+"\\setup.exe";
         LongPathToQuote(svTmp, TRUE);
         szParam         = svTmp;
         LongPathToShortPath(szParam);
         svTmp  = COMMONFILES+"InstallShield\\engine\\6\\Intel 32\\ctor.dll";
         LongPathToShortPath(svTmp); 
         szProgram       = "RunDll32"+" "+ svTmp+",LaunchSetup";
         szCommandLine = szProgram + " " + szParam; 
         //RunDll32 D:\PROGRA~1\COMMON~1\INSTAL~1\ENGINE\6\INTEL3~1\ctor.dll,LaunchSetup "D:\Program Files\InstallShield Installation Information\PRODUCT_GUID+"\\setup.exe" 
         if (AddFolderIcon(szProgramFolder, szItemName, szCommandLine, szWorkingDir,
                       szIconPath, nIcon, szShortCutKey, nFlag) < 0) then
            return -1;
         endif;