INNO setup 制作补丁图文教程

『补丁简介』
汉化补丁,与软件安装包一样,都是汉化软件发布的形式,两者可以实现软件汉化的目的,但相较于安装包而言,汉化补丁则不涉及原程序的版权问题,且体积较小,便于传输。
在 INNO setup 中,制作真正补丁可以调用 NSIS 中的补丁插件-VPatch 插件,详见陈维信的 Blog 《INNO 补丁制作技术, 打开 INNO 补丁制作方法的第一页》,链接地址为:http://restools.hanzify.org/article.asp?id=45
这里介绍一种与前文不同的 INNO setup 补丁制作方法。该方法所编译生成的补丁,不含真正意义上的补丁数据(即:汉化文件与未汉化文件比较生成的差异文件),仅仅是执行了文件替换或文件复制操作,故而不算严格意义上的补丁。但该方法简单易行,非常适用于非大型软件(包括多语言文件补丁),其主要思路如下:
1)通过注册表键值判断是否已经安装原版程序;
2)通过读取注册表键值判断原版的安装路径;
3)将已汉化文件替换同名的未汉化文件或复制文件到指定目录。
『学习任务』
汉化目标:用 INNO setup 制作 Cleanse Uninstaller Pro 6 的汉化补丁(示例文件为简体中文语言文件)
原版 Cleanse Uninstaller Pro 6
『操作步骤』
1.通过注册表键值判断是否已经安装原版程序。
一般软件安装后,都会在注册表中添加相关键值,如本实例软件,安装原版后会添加如下键值:
HKEY_LOCAL_MACHINE\SOFTWARE\Cleanse
只需在[Code]段添加如下代码即可判断是否已安装原版程序,代码如下:
- function ShouldSkipPage(PageID: Integer): Boolean;
- begin
- result := false;
- if PageID = wpSelectDir then result := true;
- end;
- function InitializeSetup(): Boolean;
- begin
- Result := true;
- if not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Cleanse') then
- begin
- MsgBox('未检测原英文版程序,请先行安装!'#13#13'软件汉化:张传伟 2009', mbInformation, MB_OK);
- Result := False;
- end;
- end;
存在相关键值,可以继续安装补丁:
不存在相关键值,提示用户安装原版:
2.搜索注册表获取安装路径
在“开始”菜单-“运行”中输入“regedit”,打开注册表编辑器,搜索“C:\Program Files\Zards software\Cleanse Uninstaller Pro”,由于注册表中搜索不到安装路径(如下图所示),只能搜索主程序以获取完整路径。
获取 Cleanse Uninstaller.exe 文件所在位置的上级目录,即安装路径可以用下面两种不同代码实现。
第一种方式: INNO setup 的 [setup] 段代码设置为:
程序代码
DefaultDirName={code:ExtractFilePath|{reg:HKLM\SOFTWARE\Cleanse,Path}}
第二种方式:
(1)INNO setup 的 [setup] 段代码设置为:
程序代码
DefaultDirName={code:GetPath}
(2)INNO setup 的 [Code] 段添加如下代码设置:
程序代码
function GetPath(Param: String): String;
var
strPath: String;
begin
strPath := ExpandConstant('{pf}Zards software\Cleanse Uninstaller Pro');
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Cleanse', 'Path', strPath) t\then
begin
strPath := ExtractFilePath(strPath);
end;
Result := strPath;
end;
当注册表能直接找到安装路径时,可以用{pf}代替实际的安装路径,如:
对应注册表值如下
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Reallusion\FaceFilter Studio\2.0]
.......
"Install Path"="C:\\Program Files\\Reallusion\\FaceFilter Studio 2"
.......
此时,可以在 INNO setup 的 [setup] 段代码设置为
程序代码
DefaultDirName={reg:HKLM\SOFTWARE\Reallusion\FaceFilter Studio\2.0,Install Path|{pf}}
3.将已汉化的 SChinese.lan 复制到软件安装路径的“LangFiles”子目录中,[File]段代码如下:
程序代码
Source: "E:\Hanzify\SChinese.lan"; DestDir: "{app}\LangFiles"; Flags: ignoreversion
作者:Raindy 网站:www.raindy.org
相关文章
职场人慌了! DeepSeek配合Mermaid自动绘图的技巧
DeepSeek这玩意儿,配合Mermaid,自动生成甘特图,这速度,这效率,简直了神奇了,下面我们就来看看用法2025-03-05- 今天汇总15个很值得收藏的DeepSeek 提示词,包含职场打工人必备,自媒体爆款创作,学生党逆袭,个人成长开挂等等全方面2025-03-04
如何在iPhone上部署DeepSeek-R1? DeepSeek-R1在手机上部署全攻略
你以为只在大机器上跑的模型,其实在手机上也能玩得转!为了体验一下国产模型的魅力,我在苹果手机上部署了DeepSeek-R1 1.5B版,详细步骤如下2025-03-01- 我们之前分享了很多DeepSeek安装及本地部署教程,今天我们来看看怎么驯化DeepSeek为自己服务,下面我们就来看看DeepSeek 7天指导手册2025-02-21
手机端本地部署 Deepseek +桌面端 Deepseek 搭建知识库指南
关于 Deepseek,这段时间也传来不少新闻,本文将介绍如何在安卓手机和桌面设备上分别部署本地运行的 Deepseek R1 模型,并搭建知识库,详细如下文2025-02-21DeepSeek-R1 与 AnythingLLM 安装部署本地知识库详细教程
DeepSeek R1是目前最火的大模型,近来有很多朋友问怎么搭建DeepSeek 本地知识库,在这里分享一种使用DeepSeek + AnythingLLM快速搭建本地知识库的方法,完全本地化,懒人必2025-02-20DeepSeek怎么获取官方API? 一文教会你获取DeepSeek官方API技巧
想要体验DeepSeek,该怎么货期官方API呢?下面我们就来看看获取DeepSeek官方API的详细图文教程2025-02-12DeepSeek怎么一秒生成工作表目录? DeepSeek办公自动化的技巧
面对日益增长的数据量和复杂多变的业务需求,传统的Excel操作方式在效率和灵活性上逐渐显露出不足,如果接入DeepSeek就可以补足缺陷,详细请看下文介绍2025-02-12DeepSeek入门必备技巧与隐藏功能! DeepSeek新手使用指南
几乎一夜之间,所有人都在关注DeepSeek,今天就来聊一聊DeepSeek,从什么是DeepSeek开始,到火爆原因,怎么下载使用,以及使用场合和隐藏功能分享,详细如下2025-02-12DeepSeek卡顿延迟问题怎么解决? 流畅使用DeepSeek的方法大全
由于deepseek人气越来越高,让越来越多人开始使用deepseek,另一方面由于前阵子登录热搜的外网网络攻击,导致用户在使用时常常还没说几句话,就出现服务器繁忙字样,或使用2025-02-12
最新评论