国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 軟件教程 > 正文

INNO setup 制作補(bǔ)丁圖文教程

2020-07-18 15:50:01
字體:
供稿:網(wǎng)友

『補(bǔ)丁簡介』

  漢化補(bǔ)丁,與軟件安裝包一樣,都是漢化軟件發(fā)布的形式,兩者可以實(shí)現(xiàn)軟件漢化的目的,但相較于安裝包而言,漢化補(bǔ)丁則不涉及原程序的版權(quán)問題,且體積較小,便于傳輸。
  在 INNO setup 中,制作真正補(bǔ)丁可以調(diào)用 NSIS 中的補(bǔ)丁插件-VPatch 插件,詳見陳維信的 Blog 《INNO 補(bǔ)丁制作技術(shù), 打開 INNO 補(bǔ)丁制作方法的第一頁》,鏈接地址為:http://restools.hanzify.org/article.asp?id=45
  這里介紹一種與前文不同的 INNO setup 補(bǔ)丁制作方法。該方法所編譯生成的補(bǔ)丁,不含真正意義上的補(bǔ)丁數(shù)據(jù)(即:漢化文件與未漢化文件比較生成的差異文件),僅僅是執(zhí)行了文件替換或文件復(fù)制操作,故而不算嚴(yán)格意義上的補(bǔ)丁。但該方法簡單易行,非常適用于非大型軟件(包括多語言文件補(bǔ)丁),其主要思路如下:
  1)通過注冊表鍵值判斷是否已經(jīng)安裝原版程序;
  2)通過讀取注冊表鍵值判斷原版的安裝路徑;
  3)將已漢化文件替換同名的未漢化文件或復(fù)制文件到指定目錄。


『學(xué)習(xí)任務(wù)』

  漢化目標(biāo):用 INNO setup 制作 Cleanse Uninstaller Pro 6 的漢化補(bǔ)丁(示例文件為簡體中文語言文件)
  原版 Cleanse Uninstaller Pro 6

『操作步驟』
  1.通過注冊表鍵值判斷是否已經(jīng)安裝原版程序
  一般軟件安裝后,都會在注冊表中添加相關(guān)鍵值,如本實(shí)例軟件,安裝原版后會添加如下鍵值:
  HKEY_LOCAL_MACHINE/SOFTWARE/Cleanse
  只需在[Code]段添加如下代碼即可判斷是否已安裝原版程序,代碼如下:

C/C++ Code復(fù)制內(nèi)容到剪貼板
  1. function ShouldSkipPage(PageID: Integer): Boolean;   
  2. begin   
  3. result := false;   
  4. if PageID = wpSelectDir then result := true;   
  5. end;   
  6. function InitializeSetup(): Boolean;   
  7. begin   
  8.   Result := true;   
  9. if not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE/Cleanse') then   
  10.   begin   
  11.   MsgBox('未檢測原英文版程序,請先行安裝!'#13#13'軟件漢化:張傳偉 2009', mbInformation, MB_OK);   
  12.   Result := False;   
  13. end;   
  14. end;  


  存在相關(guān)鍵值,可以繼續(xù)安裝補(bǔ)?。?br />  

  不存在相關(guān)鍵值,提示用戶安裝原版:
  

  2.搜索注冊表獲取安裝路徑
  在“開始”菜單-“運(yùn)行”中輸入“regedit”,打開注冊表編輯器,搜索“C:/Program Files/Zards software/Cleanse Uninstaller Pro”,由于注冊表中搜索不到安裝路徑(如下圖所示),只能搜索主程序以獲取完整路徑。
  

  獲取 Cleanse Uninstaller.exe 文件所在位置的上級目錄,即安裝路徑可以用下面兩種不同代碼實(shí)現(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}代替實(shí)際的安裝路徑,如:
  
  對應(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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安福县| 科技| 新巴尔虎右旗| 九龙县| 洛宁县| 新建县| 赤壁市| 罗田县| 阿合奇县| 齐齐哈尔市| 浦城县| 禹州市| 佛山市| 扶沟县| 延津县| 义乌市| 万全县| 揭西县| 克东县| 辽宁省| 同江市| 德庆县| 延长县| 淮安市| 泸州市| 巴里| 双桥区| 延津县| 崇州市| 甘谷县| 城市| 昌吉市| 六枝特区| 蚌埠市| 江华| 施秉县| 云霄县| 涪陵区| 冕宁县| 博湖县| 黎平县|