论坛风格切换切换到宽版
  • 1417阅读
  • 13回复

Inno 的 unins000.exe 更名 [复制链接]

上一主题 下一主题
离线feikeq
 
发帖
68
金钱
0
威望
0
只看楼主 倒序阅读 0 发表于: 2006-09-17
我看到有些 Inno 的安装程序把这个改名了。
所以再次来求。


在虎兄的帮助下终于完成了这东东的封装
图像

图像

再次感谢老虎兄无私的帮助!
废客联邦自由软件协会
图像
离线gnatix

发帖
6912
金钱
7500
威望
750
只看该作者 1 发表于: 2006-09-18
INNO SETUP 支持在同一个目录中安装多个应用程序,所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe,unins001.exe,unins002.exe 等等。这是 INNO SETUP 自身的功能。请参阅 http://www.jrsoftware.org/iskb.php?uninstallername

一旦安装过程结束后,你当然可以将卸载文件的名称改成任意其它的文件名,注意的是你除了要更改安装目录里面的 unins00X.exe 和 unins00X.dat,还要更改注册表中的相关卸载信息。由于卸载程序文件的实际位置和名称可以用常量 {uninstallexe} 表示,所以你可以让你的安装程序自动进行这些修改,见示例脚本。

个人认为做这种修改没有什么意义。让人一看就知道是 INNO 制作的卸载程序不是很好吗?
QUOTE( ChangeUninsName.iss @ 2006-9-18 10:40:34 )
; Inno Setup 脚本
; 该示例脚本显示如何自定义卸载文件的名称(默认为 unins000.exe,unins001.exe 等等)。
;
; 汉化新世纪 gnatix 于 2006.09.18

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

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

[CODE]
procedure CurStepChanged(CurStep: TSetupStep);
var
uninspath, uninsname, NewUninsName, MyAppName: string;
begin
if
CurStep=ssDone then
begin
// 指定新的卸载文件名(不包含扩展名),请相应修改!
NewUninsName := '卸载';
// 应用程序名称,与 [SEUTP] 段的 AppName 必须一致,请相应修改!
MyAppName := '自定义卸载文件名示例程序';
// 以下重命名卸载文件
uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
// 以下修改相应的注册表内容
if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1') then
  begin
 
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
  RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /SILENT');
  end;
end;
end;
离线feikeq
发帖
68
金钱
0
威望
0
只看该作者 2 发表于: 2006-09-18
哇,虎兄!太感谢了。
终于做到了.强啊。
废客联邦自由软件协会
图像
离线mapeng

发帖
394
金钱
0
威望
0
只看该作者 3 发表于: 2006-09-18
强,学习一下
我的外表很传统,我的内心很反叛;我的行动很规矩,我的思想却激进;我的语言很尖刻,我的性情很温柔;我的眼光很挑剔,我的能力却有限;我的理想很伟大,我的现状很平凡;我的头脑很灵活,我的双手却笨拙;我的睡眠很踏实,我的美梦很有限;我的长相很酷毙,我的女友却没影。
离线刘波

发帖
2985
金钱
50
威望
5
只看该作者 4 发表于: 2006-09-18
个人比较讨厌INNO的这个不能直接自定义卸载程序名称的功能。还是喜欢NSIS,可以直接指定卸载程序的名称,而且可以自由选择是否记录安装log。
离线viphjw
发帖
134
金钱
0
威望
0
只看该作者 5 发表于: 2006-09-18
LZ那个CS多大,嘿嘿
离线feikeq
发帖
68
金钱
0
威望
0
只看该作者 6 发表于: 2006-09-21
230 M

官方下载地址 http://cs.fk68.net
废客联邦自由软件协会
图像
离线leyan22

发帖
505
金钱
0
威望
0
只看该作者 7 发表于: 2006-09-22
QUOTE(刘波 @ 2006年 09月 18日 19时 22分) [snapback]306834[/snapback]

个人比较讨厌INNO的这个不能直接自定义卸载程序名称的功能。还是喜欢NSIS,可以直接指定卸载程序的名称,而且可以自由选择是否记录安装log。

我倒不喜欢INNO在注册表里的卸载都是_is1这种格式……
图像
离线gnatix

发帖
6912
金钱
7500
威望
750
只看该作者 8 发表于: 2006-09-26
QUOTE(leyan22 @ 2006年 09月 22日 08时 38分) [snapback]307179[/snapback]

QUOTE(刘波 @ 2006年 09月 18日 19时 22分) [snapback]306834[/snapback]

个人比较讨厌INNO的这个不能直接自定义卸载程序名称的功能。还是喜欢NSIS,可以直接指定卸载程序的名称,而且可以自由选择是否记录安装log。

我倒不喜欢INNO在注册表里的卸载都是_is1这种格式……

如果你不喜欢 XXXX_is1 这种格式,你可以在这样修改:
在 INNO SETUP 的安装目录中找到文件 Setup.e32,用 UltraEdit 打开它,搜索 ASCII 字符串 “_is1”,一共可以找到三处,把它们全部用 “00” 替换,注意修改前面相应的长度标记!
以后产生的注册表卸载项中就没有 “_is1” 字样了。
离线viphjw
发帖
134
金钱
0
威望
0
只看该作者 9 发表于: 2006-09-26
不错,去看看