INNO setup 制作補丁圖文教程

『補丁簡介』
漢化補丁,與軟件安裝包一樣,都是漢化軟件發(fā)布的形式,兩者可以實現(xiàn)軟件漢化的目的,但相較于安裝包而言,漢化補丁則不涉及原程序的版權(quán)問題,且體積較小,便于傳輸。
在 INNO setup 中,制作真正補丁可以調(diào)用 NSIS 中的補丁插件-VPatch 插件,詳見陳維信的 Blog 《INNO 補丁制作技術(shù), 打開 INNO 補丁制作方法的第一頁》,鏈接地址為:http://restools.hanzify.org/article.asp?id=45
這里介紹一種與前文不同的 INNO setup 補丁制作方法。該方法所編譯生成的補丁,不含真正意義上的補丁數(shù)據(jù)(即:漢化文件與未漢化文件比較生成的差異文件),僅僅是執(zhí)行了文件替換或文件復(fù)制操作,故而不算嚴(yán)格意義上的補丁。但該方法簡單易行,非常適用于非大型軟件(包括多語言文件補丁),其主要思路如下:
1)通過注冊表鍵值判斷是否已經(jīng)安裝原版程序;
2)通過讀取注冊表鍵值判斷原版的安裝路徑;
3)將已漢化文件替換同名的未漢化文件或復(fù)制文件到指定目錄。
『學(xué)習(xí)任務(wù)』
漢化目標(biāo):用 INNO setup 制作 Cleanse Uninstaller Pro 6 的漢化補丁(示例文件為簡體中文語言文件)
原版 Cleanse Uninstaller Pro 6
『操作步驟』
1.通過注冊表鍵值判斷是否已經(jīng)安裝原版程序。
一般軟件安裝后,都會在注冊表中添加相關(guān)鍵值,如本實例軟件,安裝原版后會添加如下鍵值:
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;
存在相關(guān)鍵值,可以繼續(xù)安裝補?。?br />
不存在相關(guān)鍵值,提示用戶安裝原版:
2.搜索注冊表獲取安裝路徑
在“開始”菜單-“運行”中輸入“regedit”,打開注冊表編輯器,搜索“C:\Program Files\Zards software\Cleanse Uninstaller Pro”,由于注冊表中搜索不到安裝路徑(如下圖所示),只能搜索主程序以獲取完整路徑。
獲取 Cleanse Uninstaller.exe 文件所在位置的上級目錄,即安裝路徑可以用下面兩種不同代碼實現(xiàn)。
第一種方式: INNO setup 的 [setup] 段代碼設(shè)置為:
程序代碼
DefaultDirName={code:ExtractFilePath|{reg:HKLM\SOFTWARE\Cleanse,Path}}
第二種方式:
(1)INNO setup 的 [setup] 段代碼設(shè)置為:
程序代碼
DefaultDirName={code:GetPath}
(2)INNO setup 的 [Code] 段添加如下代碼設(shè)置:
程序代碼
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;
當(dāng)注冊表能直接找到安裝路徑時,可以用{pf}代替實際的安裝路徑,如:
對應(yīng)注冊表值如下
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] 段代碼設(shè)置為
程序代碼
DefaultDirName={reg:HKLM\SOFTWARE\Reallusion\FaceFilter Studio\2.0,Install Path|{pf}}
3.將已漢化的 SChinese.lan 復(fù)制到軟件安裝路徑的“LangFiles”子目錄中,[File]段代碼如下:
程序代碼
Source: "E:\Hanzify\SChinese.lan"; DestDir: "{app}\LangFiles"; Flags: ignoreversion
作者:Raindy 網(wǎng)站:www.raindy.org
相關(guān)文章
職場人慌了! DeepSeek配合Mermaid自動繪圖的技巧
DeepSeek這玩意兒,配合Mermaid,自動生成甘特圖,這速度,這效率,簡直了神奇了,下面我們就來看看用法2025-03-05- 今天匯總15個很值得收藏的DeepSeek 提示詞,包含職場打工人必備,自媒體爆款創(chuàng)作,學(xué)生黨逆襲,個人成長開掛等等全方面2025-03-04
如何在iPhone上部署DeepSeek-R1? DeepSeek-R1在手機上部署全攻略
你以為只在大機器上跑的模型,其實在手機上也能玩得轉(zhuǎn)!為了體驗一下國產(chǎn)模型的魅力,我在蘋果手機上部署了DeepSeek-R1 1.5B版,詳細(xì)步驟如下2025-03-01- 我們之前分享了很多DeepSeek安裝及本地部署教程,今天我們來看看怎么馴化DeepSeek為自己服務(wù),下面我們就來看看DeepSeek 7天指導(dǎo)手冊2025-02-21
手機端本地部署 Deepseek +桌面端 Deepseek 搭建知識庫指南
關(guān)于 Deepseek,這段時間也傳來不少新聞,本文將介紹如何在安卓手機和桌面設(shè)備上分別部署本地運行的 Deepseek R1 模型,并搭建知識庫,詳細(xì)如下文2025-02-21DeepSeek-R1 與 AnythingLLM 安裝部署本地知識庫詳細(xì)教程
DeepSeek R1是目前最火的大模型,近來有很多朋友問怎么搭建DeepSeek 本地知識庫,在這里分享一種使用DeepSeek + AnythingLLM快速搭建本地知識庫的方法,完全本地化,懶人必2025-02-20DeepSeek怎么獲取官方API? 一文教會你獲取DeepSeek官方API技巧
想要體驗DeepSeek,該怎么貨期官方API呢?下面我們就來看看獲取DeepSeek官方API的詳細(xì)圖文教程2025-02-12DeepSeek怎么一秒生成工作表目錄? DeepSeek辦公自動化的技巧
面對日益增長的數(shù)據(jù)量和復(fù)雜多變的業(yè)務(wù)需求,傳統(tǒng)的Excel操作方式在效率和靈活性上逐漸顯露出不足,如果接入DeepSeek就可以補足缺陷,詳細(xì)請看下文介紹2025-02-12DeepSeek入門必備技巧與隱藏功能! DeepSeek新手使用指南
幾乎一夜之間,所有人都在關(guān)注DeepSeek,今天就來聊一聊DeepSeek,從什么是DeepSeek開始,到火爆原因,怎么下載使用,以及使用場合和隱藏功能分享,詳細(xì)如下2025-02-12DeepSeek卡頓延遲問題怎么解決? 流暢使用DeepSeek的方法大全
由于deepseek人氣越來越高,讓越來越多人開始使用deepseek,另一方面由于前陣子登錄熱搜的外網(wǎng)網(wǎng)絡(luò)攻擊,導(dǎo)致用戶在使用時常常還沒說幾句話,就出現(xiàn)服務(wù)器繁忙字樣,或使用2025-02-12