Windows CE/Pocket PC安装盘的制作

原创 2002年02月23日 08:41:00

                                 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:/Sample/source下

[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,Software/Microsoft/%AppName%,MajorVersion,0x00010001,1
HKLM,Software/Microsoft/%AppName%,MinorVersion,0x00010001,0

[Links]
"快捷方式名称",0,sample.exe,%CE17%    ; 在开始菜单创建快捷方式

二、用CabWiz.exe制作一个CAB包,CabWiz.exe文件在目录
%evtoolsdir%/Windows CE Tools/wce300/MS Pocket PC/support/ActiveSync/windows ce application installation/cabwiz
下,其中%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 <CabWiz-Path> with the full path to the CabWiz.exe file
REM Replace <INF-Path> with the full path to the Sample.INF file
REM
REM 请在文件"sample.inf"上面加上一对""号
REM 下面的命令应该是一行

"%evtoolsdir%/Windows CE Tools/wce300/MS Pocket PC/support/
ActiveSync/windows ce application installation/cabwiz/CabWiz.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 Files/Microsoft ActiveSync,运行如下命令:

C:/Program Files/Microsoft ActiveSync>ceappmgr c:/sample/install.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 <windows.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#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[]="software//Microsoft//Windows//CurrentVersion//App Paths//CEAppMgr.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与建议请一并发至blackcolor@263.net

windows ce、windows mobile和 Pocket PC 的区别

WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。 WinCE是一个嵌入式操作系统,使用范围更广泛,不过它只是...
  • aiwtu
  • aiwtu
  • 2008年12月16日 21:14
  • 3299

手动制作mac电脑的windows安装盘,不通过系统的bootcamp

如果想在Mac上安装windows系统,通常我们是使用macOS系统自带的bootcamp工具,通过iso映像,下载windows支持软件来制作系统安装盘.但是如果电脑的macOS系统已经损坏,重新安...
  • still_night
  • still_night
  • 2016年12月27日 19:33
  • 1483

Windows Mobile 5.0的项目开发环境

我是用 VS.NET 2005 开发的,所以这里只是介绍在 VS.NET 2005 下的 Windows Mobile 5.0 开发环境,我的开发环境都是简体中文版,所以介绍的软件也都是简体中文版的,...
  • haohantech
  • haohantech
  • 2011年12月06日 14:55
  • 467

Windows Mobile 5.0 SDK R2 for Pocket PC 安装错误解决方案

Windows Mobile 5.0 SDK R2 for Pocket PC安装错误解决方案 错误: Error: Installation failed for component Windows...
  • tsing_best
  • tsing_best
  • 2014年05月05日 15:45
  • 765

Windows Mobile远程控制软件Pocket Controller Pro简介

Pocket Controller Pro是一款优秀的PPC/Windows Mobile远程控制软件,功能非常强大,安装完毕后,不仅可通过同步信道控制远程设备,此外还可以通过TCP/IP操控远程设备...
  • yefanqiu
  • yefanqiu
  • 2007年08月26日 20:05
  • 23522

VS2008 Pocket PC 2003 SE仿真程序上网设置

本以为很简单的事情,结果百度了好久才搞定,大体分为3个步骤:Microsoft ActiveSync安装配置、Pocket PC 2003 SE仿真程序配置、Pocket PC 2003连接到Micr...
  • ysq5202121
  • ysq5202121
  • 2013年11月10日 18:40
  • 2117

配置Pocket PC 2003 SE设备仿真器的网络设置

本文介绍配置Pocket PC 2003 SE设备仿真器网络设置的方法共有六个步骤: 下载虚拟网卡驱动程序 在PC上安装虚拟网卡驱动 在Visual Studio 2005中配置仿真...
  • yanyouning
  • yanyouning
  • 2006年09月16日 22:43
  • 18722

安装 Pocket PC 2003 SE 仿真设备的虚拟网卡的过程

 因工作开发一运行于PPC上的程序,PPC上的程序需要跟PC端进行TCP、UDP通讯。为了调试方便,需要为模拟器设置网络环境。一开始对照sdk跟帮助文档设置N久也没搞定,郁闷 -_-!。忍受了不停的同...
  • jackyvan
  • jackyvan
  • 2007年12月17日 17:16
  • 2002

Windows Mobile 5.0 SDK 下载地址

Windows Mobile 5.0 开发包:(包括工具和学习资源):http://download.microsoft.com/download/6/0/8/608530c5-7e9a-4032-b...
  • friend_yutian
  • friend_yutian
  • 2007年01月09日 12:30
  • 6885

Pocket PC模拟器设置上网

在开发终端系统时,有时需要访问外网调用webservice,但调试时无法连接无线,其实可以通过终端配置为连接到电脑,然后通过同步软件上网,具体配置如下: 1、同步软件连接设置截图: 2、vs中...
  • yinxing408033943
  • yinxing408033943
  • 2011年11月21日 15:53
  • 1393
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows CE/Pocket PC安装盘的制作
举报原因:
原因补充:

(最多只允许输入30个字)