ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Windows CE/Pocket PC安装盘的制作 (转)

Windows CE/Pocket PC安装盘的制作 (转)

原创 Linux操作系统 作者:worldblog 时间:2007-12-12 14:00:35 0 删除 编辑
Windows CE/Pocket PC安装盘的制作 (转)[@more@]

  windows CE/Pocket PC安装盘的制作

  by blackcolor  2002.02.21

  工作环境为:microsoft EMBDVTOOLS 3.0、Microsoft ActiveSync 3.1、windows 98SE、Microsoft Visual C++ 6.0,
  PDA是联想天玑3000(Windows CE 3.0版本、cpu是ARM SA1110)

  Windows CE/Pocket PC安装盘的制作可分为以下几个步骤,在详细说明之前,假设在C:已经建立一个目录sample,
里面有已经编译好的EXE文件sample.exe(放在sample的子目录source下)和一个ico文件sample.ico。

一、准备一个inf文件(Sample.inf),放在c:sample下,其格式如下:

;  PDA安装文件:Sample.inf
;

[Version]
Signature  = "$windows NT$"
Provider  = "你的公司名称"
CESignature = "$Windows CE$"

[CEStrings]
AppName  = "你的应用程序名称"
InstallDir  = %CE1%%AppName%

[CEDevice]
ProcessorType  = 2577 ; CPU类型为ARM SA11xx

[SourceDisksNames]
1 = ,"Common files",,source ; 源文件在在C:Samplesource下

[SourceDisksfiles]
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标签选择win32 Application,“Project Name”
输入install。
2.第二步选择“An empty project”,按Finish按钮。
3.新建一个文件install.cpp,并加入工程,内容如下:

// --------------------------------------------------
//  PDA 安装程序(Pocket PC)
// --------------------------------------------------

#include
#include
#include
#include
#include
#include <shellapi.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)
 {
 Dword 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.本文版权归原作者所有,其它网站转载请注明出处并保持本文的完整性,
传统媒体转载须事先与原作者联系,bug与建议请一并发至Mailto:blackcolor@263.NET">blackcolor@263.net。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-992075/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    6241
  • 访问量
    2448129