[ 前言 ]
很久以前下載過一個卡巴斯基的防毒程式,它只有一個檔案,號稱是「一鍵安裝」版。當時覺得很神奇,點二下後它就自己安裝好了!看起來真的是很棒,使用者無須去做任何設定就安裝好了 ~ 今天要寫一篇文章來介紹這種程式是怎麼開發的出來的。看一下手邊可以用的軟體,就決定做一個「一鍵安裝版 Windows Live Messenger」,中間再針對 WLM 做去廣告的動作 ~ OK,開始囉

[ 所需軟體 ]

WinRAR

ResHack

Windows Live Messenger 主程式

[ 實作 ]

首先我先連上 MSN 網站去下載 Windows Live Messenger 主程式,下載回來後用 WinRAR 解開它,應該會得到四個檔案。

首先我們要了解一下 Windows Live Messenger 安裝時所使用的參數為何,解開壓縮後,假設我放在 C:\msn 目錄下,此時切換到 cmd 模式,鍵入 MsnMsgs.msi /help



此時應該就會跳出另一個視窗,裡面包含安裝所需要的參數說明文件!按我連結

詳細的參數說明就麻煩自己研究啦,而我使用的參數就只有 MsnMsgs.msi /passive

接下來就是重頭戲了,打開 WinRAR 準備開工了 ~



首先將四個檔案用滑鼠全選起來後,按右鍵選擇「加到壓縮檔(A)」後,會出現下列畫面



接下來我們設定一下「圖示」的部份,挑一個美美的檔案吧,WinRAR內建做出來的圖蠻醜的 XD。點選「進階設定」->「自解檔選項」->「文字及圖示」->「從下列檔案載入自解檔圖示」

接下來是製作自解檔最重要的地方,就是要下參數設定的部份,請點選上面那張圖最右邊的「註解」

「註解」裡面可以讓我們自己去編寫安裝過程中的一些選項,詳細參數用法可以參考 Pank's Blog

下面是我所使用的各項參數

Title=Bojack Test
TempMode=您希望繼續安裝 MSN 8嗎 ?@Bojack封裝程式
Overwrite=1
Silent=1
Setup=MsnMsgs.msi /passive
Shortcut=D, %ProgramFiles%\MSN Messenger\msnmsgr.exe, , "WLM執行檔", "WLM"
Title 設定自解檔對話方塊標題
TempMode 解壓縮檔案到暫存資料夾,並顯示提示訊息
Overwrite 選擇檔案的覆寫模式,1 就是蓋過去
Silent 跳過開始時的對話方塊
Setup 指定解壓縮後執行的程式,也就是指定 MsnMsgs.msi 啦 ~ 後面記得要加參數喔
Shortcut 建立解壓縮檔案的捷徑



按下確定後,檔案就製作好了!很簡單吧 ~ 以後利用這個程式就可以「一鍵安裝 Windows Live Messenger」了

接下來說明如果要破解去廣告、去搜尋框的方法 ~ 引用一下 "MSN去廣告,自己搞定" 的教學
我們這時要利用 ResHacker 這個程式來編輯 Windows Live Messenger 安裝目錄裡的 msgsres.dll

1:去除界面上的廣告:
打開msgsres.dll中的4004-923,查找裡面的"ID=Atom(SSConstrainer)",不包括兩頭雙引號,將前面的layoutpos=top改為layoutpos=none,編譯保存,OK

2:去除對話框下面的文字廣告方法:
同樣打開那個文件,找到:
改為:

3:去除界面底部搜索欄:
在上邊的文件中查找"idSearchContainer"
將上邊的"layoutpos=bottom"改成"layoutpos=none"

修改好之後要怎麼用呢,仔細想一下。我們只需先安裝 Windows Live Messenger 後,再把這個 msgsres.dll 蓋過去不就好了嗎!

所以我們先做 msgsres.dll 的自解檔,設定的方法如下圖,只需解壓縮到安裝好的目錄就好 ...



製作好之後,應該就得到 msgsres.exe 這個自解檔,那我們再重新打包一次一開始所提到「四個檔案」+「msgsres.exe」吧

全選這五個檔案後,按下右鍵選擇「加到壓縮檔(A)」

在註解的頁面就要改成這個樣子,看出來了嗎?就是多加入一行 Setup=msgsres.exe 就好了 :D


大功告成囉,最後我們會得到一個 這個檔案了 ~ 嘿嘿

特別感謝冰漾從中不厭其煩的指導 : )

若有興趣的人也可以再參考這些相關文章喔

[1] [教學] 自動安裝 簡易教學 - by 冰漾
[2] WinRAR self-extraction installation tip
[3] MSN 去廣告,自己搞定

arrow
arrow
    全站熱搜

    Bojack 發表在 痞客邦 留言(0) 人氣()