如何製作wince中的cab安裝包(轉)

    最近因爲工作的需要,把公司的產品打包到PPC上面去安裝,以前都是手動cpoy到指定的目錄下的。(累!)。把自己的心得寫出來。

    其實做起來很簡單,你需要一下幾個問題 makecab.exe、Cabwiz.exe,還有一個inf文件,前兩個在你安裝的sdk裏面都能找的到,smart phone 和PPC的都有,能不能通用我沒實驗過。這裏最重要的是那個inf文件的編寫。(下面會介紹),所有的文件都有了以後,在cmd裏面執行 CabwizSP xx.inf,xx代表你爲inf文件起的名字。就能生成一個cab安裝文件,把這個文件copy到PPC裏面去就可以安裝了,不過要注意的是,你安裝完成後這個cab包會被自動的刪除掉的。

   下面給個我寫的inf文件的例子,很簡單的,大家看看就明白了,實在不明白,大家看我在最後面給出的連接。

   [Version]
Signature = "$Windows NT$"
Provider = "2.18"
CESignature = "$Windows CE$"

[CEStrings]
AppName = "CityMgr"
InstallDir = %CE1%/%AppName%
mappname = "城管通"
mupdatename = "城管通升級程序"

[SourceDisksNames]
1 = ,"city_path",,CityMgr
2 = ,"res_path",,CityMgr/resource
3 = ,"maps_path",,CityMgr/maps

[SourceDisksFiles]
citymgr.exe = 1
citymgrupdate.exe = 1
conf.dat = 1
help.htm = 1
number.txt = 1
path.txt = 1
welcome.bmp =1


background.gif = 2
default.jpg = 2
event.gif = 2
event_.gif = 2
login.gif = 2

gridset.txt = 3
map1.dat = 3
map1.ind = 3
map2.dat = 3
map2.ind = 3
map3.dat = 3
map3.ind = 3
map4.dat = 3
map4.ind = 3
shmap.mdf = 3

[DefaultInstall]
CopyFiles = CopyToCity,CopyToRes,CopyToMap

;這裏的這個快捷方式的指定讓我傷了大腦筋,不知道是我的領悟能力有限還是微軟的幫助沒表達清楚,呵呵
CEShortcuts = mMainApp,mUpdateApp    

[mMainApp]
城管通,0,citymgr.exe,%CE11%

[mUpdateApp]
城管通升級程序,0,citymgrupdate.exe,%CE11%

 

[DestinationDirs]
CopyToRes = 0,%CE1%/%AppName%/RESOURCE
CopyToMap = 0,%CE1%/%AppName%/maps
CopyToCity = 0,%CE1%/%AppName%
;就是這裏的路徑,對應上面的快捷方式,剛開始還以爲是快捷方式的存放路徑,後來發現是需要設置快捷方式的文件的路徑
mMainApp = 0,%CE1%/%AppName%
mUpdateApp = 0,%CE1%/%AppName%

[CopyToCity]
citymgr.exe,,,0
citymgrupdate.exe,,,0
conf.dat,,,0
help.htm,,,0
number.txt,,,0
path.txt,,,0
welcome.bmp,,,0

[CopyToRes]
background.gif,,,0
default.jpg,,,0
event.gif,,,0
event_.gif,,,0
login.gif,,,0

[CopyToMap]
gridset.txt,,,0
map1.dat,,,0
map1.ind,,,0
map2.dat,,,0
map2.ind,,,0
map3.dat,,,0
map3.ind,,,0
map4.dat,,,0
map4.ind,,,0
shmap.mdf,,,0

這裏給出一個微軟的詳細幫助連接,不過估計看的也會比較暈!
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/dv_evtuv/html/etlrfsectionheaderreference.asp

 

 

WinCE CAB Manager v1.1.0.4 Final 正式版      
   有了此程序,不用我們自己去寫複雜的inf文件,就可輕易製作出CAB安裝包。他可以讀取、解壓CAB文件,讀取inf文件,嚮導式的CAB 製作。
     我們不但可以用他製作cab安裝程序,還可用來修改註冊表,我們經常修改大量的註冊表,來修改系統圖片、功能等,但每次硬起,都需重新設置,很是麻煩,所以還可以用他製作一個修改註冊表的cab文件,只需點擊執行,所有修改一次完成。
    我們還可以用他解壓cab文件,製作免安版軟件。
    注意:對於1.0.0.7 版來說大多數的cab文件它都打不開,而v1.1.0.4版則能打開大多數的cab文件。

[upload=rar]viewFile.asp?ID=9059[/upload]
[upload=rar]viewFile.asp?ID=9060[/upload]
[upload=rar]viewFile.asp?ID=9061[/upload]
[upload=rar]viewFile.asp?ID=9062[/upload]
[upload=rar]viewFile.asp?ID=9066[/upload]
[upload=rar]viewFile.asp?ID=9067[/upload]
[upload=rar]viewFile.asp?ID=9068[/upload]
這個是英文版,WinCE CAB Manager 1.0.0.7 漢化版去這下:
http://www.hanzify.org/index.php?Go=Show::List&ID=4832
教程(轉自漢化新世紀):
怎樣製作漢化安裝版CAB

以往發佈PPC漢化,總是要提醒用戶怎樣複製啦,怎樣先改名後刪除啦,作者煩,用戶更煩。 有什麼方法可以更方便地進行漢化呢?不如從原版的CAB動動手腳吧。衆所周知,CAB是PPC軟件常用的安裝包格式,即使是在PC端運行的exe安裝文件,最終都轉換成CAB文件來進行PPC端的安裝工作。因此,如果能修改CAB中的原版英文文件,替換以漢化後的文件,再進行安裝,自然就是中文安裝啦。
關鍵詞  CAB  安裝版

原理
原理其實很簡單,關鍵是有一個好用的CAB管理工具來實現對CAB文件的修改。值得高興的是,WinCE CAB Manager就是目前比較合適的修改工具。
修改步驟:
1、將漢化版導入、替換到CAB中,原版英文文件不再存在;
2、添加新的漢化版的快捷方式;
3、生成新的CAB文件;
4、將CAB複製到PPC中,雙擊即可安裝成中文版。

圖解
首先請到WinCE CAB Manager官方網站下載WinCE CAB Manager原版,再到軟件漢化俱樂部下載漢化補丁,安裝並漢化。





我們在進行圖解之前,首先假定你已經找到了原版的CAB文件,通常會有幾個不同的CAB以便適應不同的CPU類型。我們以IADialer10爲例,我們先找到ARM專用的CAB文件:IADialer10.PPC3_ARM.CAB,用WinCE CAB Manager打開:





首先鼠標右鍵點擊“CAB信息”,選擇“屬性”,出現對話框顯示有關CAB的基本信息:





這裏的信息將會反應到PPC的註冊表中,同時也出現在卸載程序中,因此也可以修改以便識別漢化版。


從這裏可以瞭解該CAB所支持和不支持的CPU平臺。


這時CAB允許安裝的系統版本的最低和最高版本號,意義不大。


這裏值得注意!!
冊這裏可以看出這個安裝程序到底安裝到哪個文件夾下面,如何命名的。
在這個例子中,可以通過重命名將“EN”改爲“CN”,這樣看起來更像模像樣……
瞭解了基本信息之後,我們再來看看CAB中到底還有些什麼……





單擊“CAB信息”下面的“文件”標籤,可以看到右側出現了所有文件的信息,包括安裝位置等,這樣大致知道CAB中的這些文件到底都跑到哪裏去了……


我們以IADialerEngine.dll爲例看看, 用右鍵單擊IADialerEngine.dll,選擇“屬性”,出現屬性對話框:
首先是:“常規”項,可以看到文件的屬性;索引值決定這個文件是第2個被複制到PPC中。


這裏很重要,這裏的選項決定了在複製時將如何進行一些處理工作。當我們以漢化文件替換英文文件時,請注意儘量保持這裏的一致。


原來這個IADialerEngine.dll是安裝到“windows”中的。相信如果以中文版替換後再安裝,就不用總是要用戶改名、重啓、刪除這樣麻煩了!



我們來看看快捷方式的屬性, 同樣是右鍵單擊快捷方式,選“屬性”:
首先是常規項,在這裏,填充欄的名稱可以修改成中文的快捷方式,比如“撥號器.lnk”之類。目標文件也可以自行更改。


在這裏可以知道這個快捷方式到底放在哪裏了。如果想放到“開始”菜單中,自然就可以移動到“Start Menu”。當然也可以建立自己的文件夾來放置快捷方式。


當然,我們也可以對註冊表進行查看和添加修改。
現在總算對CAB有個大致的瞭解了,我們開始偷樑換柱吧:






首先是修改應用程序的名稱,這樣在PPC刪除中將有所識別。


再把安裝文件夾改了,反正都是改嘛,50步和100步,不妨就改得像樣一點。


鼠標右鍵單擊要替換的文件,選“添加”;找到漢化後的文件,確定。


出現替換提示,當然存在啦。單擊“替換”即可。


隨手把快捷方式也改了……


所有的內容都修改了,使用“保存”或者“另存爲”菜單即可生成漢化安裝版。
爲了保證修改後的CAb文件跟原版的一致,建議同時用WinCE CAB Manager打開另一個一樣的CAB原版進行對照,保證索引、標籤等一致。這樣作出來的自然是接近原版了。
獲取CAB文件
在以往的漢化討論貼中,經常被談到獲取原版執行文件的方式是先安裝到PPC中,然後在複製、粘貼回PC端進行處理。現在有了WinCE CAB Manager,一切都迎刃而解:只要使用WinCE CAB Manager導出CAB的文件,就可以獲得全部的安裝文件:





打開一個CAB文件,選擇“文件/導出/導出到INF”菜單,


選擇輸出目錄,“下一步”……


CAB文件被逐個導出……


在圖中的文件夾裏面就是全部的安裝原版文件了……
通過WinCE CAB Manager對CAB的管理,我們可以作更多的事情,比如以前大家討論如何在英文平臺添加若干文件來進行最簡的中文系統,完全可以利用WinCE CAB Manager生成一個正式的安裝文件來執行,這樣豈不方便?很多破解版也可以直接修改原版CAB實現直接安裝。
不過經過測試,前面採用導出INF的方式所生成的INF文件,再導入回WinCE CAB Manager的時候確不能正確導入,不過也有助於自己跟進相應的內容自行添加修改了。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章