Windows CE/Pocket PC安裝盤的製作 (轉)

worldblog發表於2007-12-12
Windows CE/Pocket PC安裝盤的製作 (轉)[@more@]

  CE/Pocket PC盤的製作

  by blackcolor  2002.02.21

  工作環境為: EMBDVTOOLS 3.0、Microsoft ActiveSync 3.1、SE、Microsoft Visual C++ 6.0,
  PDA是聯想天璣3000(Windows CE 3.0版本、是ASA1110)

  Windows CE/Pocket PC安裝盤的製作可分為以下幾個步驟,在詳細說明之前,假設在C:已經建立一個目錄sample,
裡面有已經編譯好的EXEsample.exe(放在sample的子目錄下)和一個ico檔案sample.ico。

一、準備一個inf檔案(Sample.inf),放在c:sample下,其格式如下:

;  PDA安裝檔案:Sample.inf
;

[Version]
Signature  = "$$"
Provr  = "你的公司名稱"
CESignature = "$Windows CE$"

[CEStrings]
AppName  = "你的應用名稱"
InstallDir  = %CE1%%AppName%

[CEDevice]
ProcessorType  = 2577 ; CPU型別為ARM SA11xx

[SourceDisksNames]
1 = ,"Common files",,source ; 原始檔在在C:Samplesource下

[SourceDiskiles]
sample.exe  = 1  ; 已經編譯好的EXE檔案

[DefaultInstall]
CopyFiles  = Files.InstallDir
AddReg  = RegData
CEShortcuts = Links

[DestinationDirs]
Files.InstallDir  = ,%InstallDir%
Links  = ,%CE11% 
DefaultDestDir  = ,%InstallDir%

[Files.InstallDir]
"porder.exe",porder.exe  ; 將複製的檔案

[RegData]
HKLM,SoftwareMicrosoft%AppName%,MajorVersion,0x00010001,1
HKLM,SoftwareMicrosoft%AppName%,MinorVersion,0x00010001,0

[Links]
"快捷方式名稱",0,sample.exe,%CE17%  ; 在開始選單建立快捷方式

二、用CabWiz.exe製作一個CAB包,CabWiz.exe檔案在目錄
%evtoolsdir%Windows CE Toolswce300MS Pocket PCsupportActiveSyncwindows ce application installationcabwiz
下,其中%evtoolsdir%是Microsoft EMBDVTOOLS 3.0的安裝目錄,在該目錄的上級目錄中有一檔案buildcab.bat,
把buildcab.bat複製到c:sample,修改為:

@echo off
REM
REM Sample batch file used to compile the CabWiz INF file
REM
REM
REM Replace with the full path to the CabWiz.exe file
REM Replace with the full path to the Sample.INF file
REM
REM 請在檔案"sample.inf"上面加上一對""號
REM 下面的命令應該是一行

"%evtoolsdir%Windows CE Toolswce300MS Pocket PCsupport
ActiveSyncwindows ce application installationcabwizCabWiz.exe" "sample.inf" /err err.log


修改完畢之後,就可以buildcab.bat檔案,該檔案將生成sample.cab。

三、製作一個ini檔案install.ini,放在c:sample下,如下:

[CEAppManager]
Version = 1.0
Component = Sample

[POrder]
Description = 說明文字
IconFile = Sample.ico
IconIndex = 0
DeviceFile = Sample.exe
CabFiles = Sample.CAB


四、把PDA連上Windows 98SE,進入MS DOS方式,進入Microsoft ActiveSync 3.1的安裝目錄
C:Program FilesMicrosoft ActiveSync,執行如下命令:

C:Program FilesMicrosoft ActiveSync>ceappmgr c:sampleinstall.ini

將啟動安裝程式,把Sample.exe安裝到PDA上。如果覺得每次這樣安裝麻煩,請參照步驟五。

五、使用VC6建立一個簡單的安裝載入程式
1.開啟vc6新建一個工程,在Projects標籤選擇 Application,“Project Name”
輸入install。
2.第二步選擇“An empty project”,按Finish按鈕。
3.新建一個檔案install.cpp,並加入工程,內容如下:

// --------------------------------------------------
//  PDA 安裝程式(Pocket PC)
// --------------------------------------------------

#include
#include
#include
#include
#include
#include <.h>

int APIENTRY WinMain(HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  LPSTR  lpCmdLine,
  int  nCmdShow)
{
 // 取自身的路徑
 char szPath[MAX_PATH];
 GetModuleFileName(NULL, szPath, MAX_PATH-1);
 // 轉換成ini檔名
 int iLen = strlen(szPath);
 strcpy(&szPath[iLen-3], "ini");

 // 取CEAppMgr.exe的全路徑
 HKEY hResult;
 char szCEAppMgr[]="softwareMicrosoftWindowsCurrentVersionApp PathsCEAppMgr.exe";
 LONG iRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE, szCEAppMgr, NULL, KEY_READ, &hResult);
 BYTE szCEAppMgrExe[MAX_PATH*2+1];
 if(iRet==ERROR_SUCCESS)
 {
 D cbName, dwType;
 cbName = MAX_PATH;
 dwType = REG_SZ;
 iRet = RegQueryValueEx(hResult, NULL, NULL, &dwType, szCEAppMgrExe, &cbName);
 RegCloseKey(hResult);
 }
 if (iRet!=ERROR_SUCCESS)
 {
 MessageBox(NULL, "請先安裝Microsoft ActiveSync!", "錯誤", MB_ICONERROR);
 return 1;
 }
 char szExe[MAX_PATH*2+2];
 strcpy(szExe, (char *)szCEAppMgrExe);

 // 開始安裝
 SHELLEXECUTEINFO ExecInfo ;
 memset((char *)&ExecInfo, 0, sizeof(ExecInfo));
 ExecInfo.cbSize = sizeof(ExecInfo);
 ExecInfo.fMask = SEE_MASK_CLASSKEY;
 ExecInfo.hwnd = NULL;
 ExecInfo.lpFile = szExe;
 ExecInfo.lpParameters = szPath;
 ExecInfo.nShow = SW_SHOW;

 ShellExecuteEx(&ExecInfo);

 return 0;
}

4.將編譯後的EXE檔案install.exe,複製到c:sample目錄,執行install.exe
將自動安裝上面的軟體。

六、說明
1.更詳細的資料請參考Microsoft EMBDVTOOLS 3.0的聯機幫助,
Microsoft EMBDVTOOLS 3.0可以由網站免費獲得。
2.我手裡只有一個PDA,對其他型號的PDA我沒有進行測試。
3.本文版權歸原作者所有,其它網站轉載請註明出處並保持本文的完整性,
傳統轉載須事先與原作者聯絡,與建議請一併發至to:blackcolor@263">blackcolor@263.net。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992075/,如需轉載,請註明出處,否則將追究法律責任。

相關文章