Windows CE/Pocket PC安装盘的制作

                                 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,您可以通过以下命令来在Linux上创建/home/ce/ce1目录: ``` mkdir -p /home/ce/ce1 ``` 该命令中的-mkdir表示创建一个目录,-p表示在创建ce1目录之前,如果不存在/home/ce目录则先创建之。 ### 回答2: 要在Linux中创建目录/home/ce/ce1,可以使用以下命令: 1. 使用cd命令进入/home/ce目录: `cd /home/ce` 2. 然后使用mkdir命令创建ce1目录: `mkdir ce1` 这样就会在/home/ce目录下创建一个名为ce1的子目录。 ### 回答3: 在Linux系统中,创建/home/ce/ce1可以按照以下步骤进行。 1. 打开终端,可以使用快捷键Ctrl + Alt + T来打开终端窗口。 2. 输入以下命令创建ce文件夹: mkdir /home/ce 这将在/home目录下创建一个名为ce的文件夹。 3. 输入以下命令创建ce1文件夹: mkdir /home/ce/ce1 这将在刚刚创建的ce文件夹下再创建一个名为ce1的文件夹。 4. 输入以下命令验证是否成功创建: ls /home/ce/ce1 这将列出ce1文件夹内的内容,如果没有显示任何内容,说明成功创建。 在这个过程中,我们使用了mkdir命令来创建目录。mkdir是Linux系统中的一个常用命令,用于创建文件夹或目录。其中,/home/ce是目标目录的路径,ce1是要创建的文件夹的名称。 创建成功后,您可以在/home/ce/ce1路径下进行各种文件操作,如创建文件、修改文件、查看文件等。这个路径将成为您存储和管理文件的目录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值