鮮為人知的Windows「插件」MSI 
 

一、初識Windows功能增強「插件」MSI

我們經常可以看到許多軟體只有一個擴展名為MSI的文件,雙擊這個文件執行,就會出現和Windows應用軟體安裝非常相似的
安裝過程,MSI文件到底是什麼?為什麼許多軟體開始用MSI格式來發行呢?請聽我慢慢說來。

1.MSI文件的由來
說到MSI文件,不得不先說說Windows Installer,它不只是安裝程序,而是可擴展的軟體管理系統。Windows Installer的用途包括:
管理軟體的安裝、管理軟體組件的增加和刪除、監視文件的復原以及使用回滾技術維護基本的災難恢復。另外,Windows 
Installer還支持從多個源位置安裝和執行軟體,而且可以由想要安裝自定義程序的開發人員自定義。要想使用這些功能,就必須
通過MSI文件。MSI文件是Windows Installer的資料包,它實際上是一個資料庫,包含安裝一種產品所需要的信息和在很多安裝
情形下安裝(和卸載)程序所需的指令和資料。MSI文件將程序的組成文件與功能關聯起來。此外,它還包含有關安裝過程本
身的信息:如安裝序列、目標資料夾路徑、系統依賴項、安裝選項和控制安裝過程的屬性。 

2.MSI的優勢
Windows Installer技術就是合併在一起發揮作用的兩個部分:客戶端安裝程序服務(Msiexec.exe) 和Microsoft軟體安裝(MSI)軟
體包文件。當雙擊MSI文件的時候,與之關聯的Windows Installer 的一個文件Msiexec.exe 被調用,它將用Msi.dll讀取軟體包文件
(.msi)、應用轉換文件(.mst)進行進一步處理,然後 Windows Installer 執行所有與安裝有關的任務:包括將文件複製到硬碟、
修改註冊表、新增桌面快捷方式,必要時顯示提示對話視窗以便用戶輸入安裝需要的信息,就這樣,一個程序安裝到了你的電
腦上。
採用MSI安裝的優勢在於你可以隨時徹底刪除它們,更改安裝選項,即使安裝中途出現意想不到的錯誤,一樣可以安全地恢復
到以前的狀態,正是憑著此強大功能,越來越多的軟體開始使用MSI作為發行的方式了。   如果你對MSI文件感興趣,可以用
WinRAR等壓縮軟體開啟,看一下裡面的內容,滿足一下好奇心。



二、細微之處增強系統的六大實例

有沒有人認為Windows已經是最強大,最好用了嗎?答案肯定是五花八門的,但我們可以讓它變得更加強大。通過一個個小的
插件程序,使系統功能更加強大方便,下面的幾個工具就可增強Windows某些方面的功能。 
小知識:MSI格式文件安裝支持程序

WinMe和WinXP對MSI支持得很好,但其他版本的Windows就需要安裝一個插件才能使用MSI格式的文件。下載地
址:http://soft.km169.net/soft/html/3699.htm


用MediaPlayer8.0做MP3

MediaPlayer8.0預設的轉換CD格式是WMA,並且預設還有版權保護,這樣導致本機做的音樂文件沒有許可證,無法在其它電腦上
播放(甚至本機重裝系統後都無法播放),其實憑著強大的擴展性,MediaPlayer一樣可以把喜歡的CD做成MP3文件。
首先要為WinXP加裝壓制MP3的昇級包,到下邊的地址下載後,壓縮包裡有兩個文件,其中一個是MP3 Creation Pack for XP.MSI
文件,雙擊執行,一路點「Next」就可以安裝了,安裝完成之後,再雙擊ENABLEMP3.REG文件,電腦就會自動將註冊信息加
入到註冊表中,安裝過程就這麼簡單。
安裝完成之後,你可能發現系統沒有任何的變化,但是實際上MediaPlayer已經可以將CD轉換成MP3了,不過要更改一下設置。
執行MediaPlayer,點擊表單中「工具→選項…→複製音樂」。將文件格式由「Windows Media音瀕」改成MP3,並將音樂質量設成
合適的,一般選160Kbps就可以了(如果你對音樂比較不敏感,用的是30元左右的音箱,選56Kbps也沒多大區別)(如圖1)。
同時,你也可以改一下儲存MP3文件的預設位置,最後點「確定」按鈕關閉「選項對話視窗」。

常用燒錄功能放到右鍵中:ISO Power Toy

這是一個可以增強Windows燒錄功能的工具。WinXP對燒錄機有了一定的支持,可以直接把文件拖到空白的燒錄盤中,然後燒
錄。但是這樣簡單的功能還不能滿足我們的需要,我們經常要複製一張光碟到空白的燒錄盤中,或者從網上下載一個ISO的鏡
像文件然後把它燒錄出來,這時候我們經常使用第三方的工具,比如說CD Copyer等等,其實安裝了這個插件以後,就不需要
這類工具了,而且使用也更簡單了。
安裝過程很簡單,雙擊執行IOSPowerToy.msi文件,然後一路單擊「Next」就可以了。完成之後新增功能已經加入到右鍵表單中
了。
首先放入一張空白的燒錄盤到燒錄機裡,然後在我的電腦的燒錄機圖示上單擊右鍵,就會發現多了「Copy image to CD」一
項,單擊左鍵,會彈出如圖2所示的界面。在Source(來源)欄裡有兩個選項,上邊的「Image File」是通過一個ISO鏡像文件來
燒錄光碟,下邊的一個是把其他光碟裡的光碟複製到燒錄盤裡,甚至可以選擇虛擬光碟作為來源,下邊的選框為選擇燒錄機。
選好後按下一步,然後就沒有什麼需要設置的了,等光碟燒錄完成後,燒錄機會自動彈出。

DVD功能恢復插件

當WinXP剛推出時,Windows MediaPlayer對其播放DVD功能做了限制。但風聲過了之後,微軟推出了下邊的工具,能發揮出
MediaPlayer播放DVD電影的全部功能。和許多增強工具一樣,安裝了這個工具以後,MediaPlayer的界面沒有改變,唯一不同的
是對DVD光碟文件支持得更好了。
安全分析工具:Microsoft Baseline Security Analyzer
通過微軟提供的這個工具,你可以對一些常見的由於設置錯誤而可能引起的安全漏洞進行掃瞄,當然,你的電腦必須安裝的是
WindowsNT4.0、Windows2000或者WindowsXP操作系統,如果電腦已經聯網,這個工具甚至可以掃瞄網路中的每一台電腦,然
後產生各個電腦的錯誤報告。需要注意的是,首先你要有系統管理員的權限;其次,如果掃瞄網路中的電腦,必須將WindowsXP
中的「簡單文件共享」關閉,否則只能掃瞄本地的電腦。

增強時鐘功能:「時可通」Windows時鐘昇級套件

Windows自帶了時鐘程序,尤其在WinXP中,甚至增加了自動通過網路校準時鐘的功能,但是對於農曆功能支持的很不好,通
過「時可通」軟體能大大增強Windows的時鐘功能。跟著提示安裝以後,Windows時鐘就增加了農曆、通過Internet自動校時等
功能。在標準Windows時鐘界面基礎上增加了可選的農曆對照、節氣、節日、屬相等顯示,用滑鼠掠過螢幕右下角時鐘時,同
樣可以增加農曆顯示和星期顯示。網路校時可以進行校時週期、備選伺服器顯示,自動檢測代理伺服器並允許用戶修改代理伺
服器,以解決區域網路校時問題,而且系統自動檢查新版本昇級。

增強MSN Messenger

通過此插件,可以讓MSN Messenger具有許多和QQ類似的功能,比如換背景圖,當某個用戶一上線就播放一段音樂等等。點
Setup根據提示就可以安裝了,安裝後有5個選項,分別是更改用戶暱稱的顯示方式、更改背景圖片、更改字庫的顏色、更改隱
含的MSN設置、對特定用戶設定。但是對於中文的MSN Messenger似乎不是很好用,只有更改背景、更改暱稱可以使用,大家
可以自己試一試。
注:以上插件都可在http://chenpan.vip.sina.com/download.htm下載。

三、定制自己的MSI文件

前面我們介紹了很多MSI文件的內容,其實MSI並不神秘、複雜,我們自己都能製作,並且製作MSI文件的工具已經在Windows
的安裝碟上了。

首先,找到Windows2000的安裝光碟,雙擊下邊的這個位置的文件:Valueadd\3rdparty\Mgmt\Winstle\Swiadmle.msi,

很快軟體就自動安裝到了電腦中。在開始表單的所有程序裡邊就多了「VERITAS software」組,點擊執行裡邊的「VERITAS 
discover」就可以開始製作MSI文件了。

製作MSI文件的基本原理就是,在我們安裝一個軟體以前,先給電腦的磁牒拍個「抓圖 」。然後將要安裝的軟體安裝到電腦
中,並對註冊表等內容做修改,等到確認這個軟體能正確執行後,再給電腦的磁牒拍個「抓圖 」。Discover軟體會自動找出兩
次「抓圖 」的不同,並且產生一個MSI文件。最後,如果你願意,可以使用VERITAS software組中的另一個工具:Veritas Software 
Console對這個MSI文件進行進一步的包裝、調整,這樣一個MSI文件包就產生了。

下面,我們具體通過一個例子來介紹一下如何使用Discover產生一個MSI文件,假定我們的軟體my的安裝過程是:將my.exe文件
安裝到C:\programmeme files\myprog下,將run.dll放到windows\system裡,在註冊表的HKEY_LOCAL_MACHINE的software項中建立
一個myprom項,並且在其中增加一個值為OK的Value項目。

第一步:執行Discover,彈出程序界面,可以直接點「Next」按鈕繼續。

第二步:在圖3的對話視窗中,首先在第一文本框為你的程序起個名字,比如這裡用的「My programmeme」;第二個對話視窗是輸
出MSI文件的存放位置和檔案名,這裡選擇儲存為E:\my_setup.msi;第三個框為壓縮包的語言,可以使用其預設值。填好後點
「Next」按鈕。

第三步:為Discover存放抓圖 文件選擇一個臨時的空間,可以選一個磁牒空間比較大的磁牒。

第四步:在接下來如圖4的對話視窗中要選擇Discover需要掃瞄並拍「抓圖 」的磁牒,你的程序要裝到哪個盤就選擇哪個盤,並
且點一下「Add」按鈕加到要掃瞄文件的列表中,你可以選擇幾個或者所有的磁牒,不過這樣會在掃瞄的過程中浪費更多的時
間,所以應該盡量少選擇磁牒。這裡只選擇C碟,因為我們的軟體是裝到C碟的。然後點「Next」。

第五步:在如圖5所示的對話視窗中為上一步選擇的每個磁牒選擇需要掃瞄的資料夾或文件,因為我們上一步只選擇了C碟,所
以為C碟選擇就可以了。另外,Discover自動加入了一些特殊的文件和目錄,我們可以根據需要決定是否將它們移出要掃瞄的文
件列表,不過最好保留它們。這裡我們把「C:\programmeme files」和Windows資料夾添進去,先在左邊的文件框中點中文件或
資料夾,然後點Add按鈕就可以了。對於註冊表的掃瞄,Discover為了加快掃瞄速度,只掃瞄部分註冊表,可以掃瞄到大部分程
序對註冊表的修改,如果不放心的話,也可以將下邊的「Enhanced Registry Scan」點中,這樣速度可能會慢很多,臨時文件也
大大增加,不過能對註冊表所有的改動加以記錄。由於我們的軟體對註冊表只是小改動,所以沒必要選擇掃瞄所有註冊表。然
後點「Next」繼續。

第六步:接下來Discover將對系統進行掃瞄產生「抓圖 」,要耐心的等待,可能要幾分鐘的時間才行。

第七步:在掃瞄完成後,會彈出一個對話視窗,大概意思就是告訴你掃瞄已經完成,問你是否要選擇一個程序來執行,從而自動
安裝你的軟體,我們正要製作安裝程序,沒有程序可執行,所以要點「取消」按鈕。

第八步:接下來,我們就要手動安裝自己的軟體了,先將my.exe文件拷貝到C:\programmeme files\myprog下,再把run.dll拷貝到
windows\system裡,然後用註冊表編輯器在註冊表的HKEY_LOCAL_MACHINE的software項中建立一個myprom項,並在其中增加
一個值為OK的Value鍵。注意,除了這些改動,應盡量避免其他無關的改動。然後我們試著執行一下剛剛安裝的my.exe文件,
測試一下是否正確安裝。

第九步:確認安裝沒有問題了,要再次執行Discover程序,這次執行Discover時,出現的是如圖6所示的一個界面,有兩個選項,
第一項是產生安裝後的抓圖 ,用於與前一次的抓圖 比較產生MSI文件,第二個選項是放棄上一次的掃瞄,當然要選第一項了,
然後點「Next」。這時Discover又開始重新對電腦進行掃瞄,產生「抓圖 」,並自動產生了安裝文件。

第十步:如果你願意,可以啟動與Discover程序在一起的VERITAS Software console對MSI文件的信息進一步更改,過程比較簡單,
只要先開啟一個MSI文件,然後就可以進行改動了,這裡就不介紹了。
就這樣,我們就產生了一個自己的MSI文件了。

點評:以前我們也經常用到MSI程序,只不過是知其然而不知其所以然,閱讀本文後相信大家同我一樣對MSI格式的文件有了更
深的瞭解,而且對MSI發佈也有了感性認識。其中作者介紹的一些插件還是非常實用的,大家不要錯過喲。