通常我把製作安裝包分成以下幾個步驟:
1. 編譯程序,按照自己的意願組織安裝包製作環境,建好目錄,把編譯鏈接成功的目標文件和所需要的其他文件拷貝過來。
2. 編寫INF文件,在這裏我們可以設置從什麼本地目錄上獲取安裝文件,要將哪些文件打進安裝包,要安裝到DEVICE上哪些目錄上去,在安裝過程中要書寫哪些註冊表內容,是否設置快捷方式等等內容,是最關鍵的一個步驟
3. 按照需要編寫Setup DLL。(可選)
4. 調用cabwiz.exe(從我的使用經驗來看,好象PPC和SP的打包程序是不一樣的,這點要注意),確定是否壓縮等等選項,打成CAB文件,這個文件可以直接拷貝到DEVICE上運行安裝。
5. 調用PC端ActiveSync安裝。(可選)
網上已經有些文章介紹瞭如何製作安裝包,我就不羅嗦了,下面介紹下如何利用ActiveSync來實現PC端安裝程序。ActiveSync是微軟提供的與Windows Mobile的同步軟件,新版本4.1下載地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=4c254e3f-79d5-4012-8793-d2d180a42dfa&DisplayLang=en
ActiveSync提供了命令行方式來幫助我們安裝Windows Mobile安裝程序,格式爲:
C:/Program Files/Microsoft ActiveSync/CeAppMgr.exe C:/Program Files/Microsoft ActiveSync/MyApp/MyApp.ini
其中C:/Program Files/Microsoft ActiveSync/爲ActiveSync安裝目錄,MyApp.ini很簡單,格式如下:
[CEAppManager]
Version = 1.0
Component = SmartPhone
[SmartPhone]
Description = MyApp
Uninstall = MyApp
CabFiles = MyApp.arm.CAB
所以要製作PC端安裝程序,只需要以下幾個步驟:
1. 製作安裝包,把CAB文件和寫好的INI文件拷貝到指定目錄下(我們這裏舉例放在C:/Program Files/Microsoft ActiveSync/MyApp下面,)
2. 編寫PC端程序,加上命令行調用:
TCHAR szCommandLine = _T(“C:/Program Files/Microsoft ActiveSync/CeAppMgr.exe”);
TCHAR szParameter = _T(“/” C:/Program Files/Microsoft ActiveSync/MyApp/MyApp.ini/””)
::ShellExecute(NULL,NULL, szCommandLine, szParameter, NULL, SW_SHOWNORMAL);
試試看,是不是可以工作?以上的例子寫死了ActiveSync的安裝路徑,移植性比較差,不過不要緊,我們可以從註冊表鍵HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Pegasus下面的InstalledDir鍵值裏面讀到ActiveSync的安裝路徑,這樣我們的程序就可以在其他的機器上安裝了,當然前提是必須安裝了ActiveSyncJ
完畢,歡迎大家拍磚。
無聊客(blog.csdn.net/yzx0023)
2006-7-3