杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2365|回复: 0

Inno Setup自定义卸载文件名称

[复制链接]
发表于 2015-2-6 09:58:56 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Inno Setup 支持在同一个目录中安装多个应用程序,所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe,unins001.exe,unins002.exe 等等。这是 INNO SETUP 自身的功能。请参阅 http://www.jrsoftware.org/iskb.php?uninstallername
一旦安装过程结束后,你当然可以将卸载文件的名称改成任意其它的文件名,注意的是你除了要更改安装目录里面的 unins00X.exe 和 unins00X.dat,还要更改注册表中的相关卸载信息。由于卸载程序文件的实际位置和名称可以用常量 {uninstallexe} 表示,所以你可以让你的安装程序自动进行这些修改,见示例脚本。
以下为引用的内容:; Inno Setup 脚本
; 该示例脚本显示如何自定义卸载文件的名称(默认为 unins000.exe,unins001.exe 等等)。

  1. [Setup]
  2. AppName=自定义卸载文件名示例程序
  3. AppVerName=自定义卸载文件名示例程序 1.0
  4. DefaultDirName={pf}\自定义卸载文件名示例程序
  5. DefaultGroupName=自定义卸载文件名示例程序


  6. [Files]
  7. Source: "MyProg.exe"; DestDir: "{app}"
  8. Source: "MyProg.hlp"; DestDir: "{app}"
  9. Source: "Readme.txt"; DestDir: "{app}"


  10. [CODE]
  11. procedure CurStepChanged(CurStep: TSetupStep);
  12. var
  13. uninspath, uninsname, NewUninsName, MyAppName: string;
  14. begin
  15. if CurStep=ssDone then
  16. begin
  17. // 指定新的卸载文件名(不包含扩展名),请相应修改!
  18. NewUninsName := '卸载';
  19. // 应用程序名称,与 [SEUTP] 段的 AppName 必须一致,请相应修改!
  20. MyAppName := '自定义卸载文件名示例程序';
  21. // 以下重命名卸载文件
  22. uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
  23. uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
  24. RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
  25. RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
  26. // 以下修改相应的注册表内容
  27. if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1') then
  28. begin
  29. RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
  30. RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /SILENT');
  31. end;
  32. end;
  33. end;
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-12 22:52 , Processed in 0.109207 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表