先看看注册表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文件,记录下来都安装了那些文件,对系统作了那些改动。
反安装文件就按照该日志进行删除和改动。然后把自己也删除掉。至于反安装文件吗,自己去写一个不就得了。
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文件,记录下来都安装了那些文件,对系统作了那些改动。
反安装文件就按照该日志进行删除和改动。然后把自己也删除掉。至于反安装文件吗,自己去写一个不就得了。
RegDBSetKeyValueEx("\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"+PRODUCT_GUID,
"UninstallString" , REGDB_STRING ,DISK1TARGET+"\\setup.exe",-1);
然后在:Scripts页中:函数 OnMaintUIBefore()和OnFirstUIBefore()下加一名话:
UNINSTALL_STRING = DISK1TARGET^"Setup.exe";
即可。
最后祝你成功,如果还有什么不明白的,E-mail联系:[email protected]
//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;