一、INF文件介绍
1.inf文件是由一系列段组成,段的定义放在广括号中,段名不能超过255字节,名字不区分大小写。每一个段描述了文件的目标地址,快捷方式,注册设置等信息,这些都会被写入.cab文件中。各个段可以随意排放次序。
2.各段描述
A.[Version]是必需的,可以指定应用程序的创建者和版本
Signature="$Windows NT$" ; 必选项。用于指定 .inf 文件对哪个操作系统有效的字符串
Provider="Test" ;作者的名字
CESignature="$Windows CE$" ;wince平台
B.[CEStrings]必选项。指定应用程序名和默认安装目录的字符串替换或字符串关键字
CompanyName="XXXCompany" ;字符串要注意,如果字串中有空格,引号,必须在外加"",如果没有,字串也可以不加
AppName="TestApp"
InstallDir=%CE1%\%AppName%
在inf文件中内置了几个固定的宏字串,这些宏字串都是指向windows mobile系统中的固定目录。在以下两个%之间的字就是宏。
%CE1% Program Files
%CE2% Windows
%CE4% Windows\StartUp
%CE5% My Documents
%CE8% Program Files\Games
%CE11% Windows\Start Menu\Programs
%CE14% Windows\Start Menu\Programs\Games
%CE15% Windows\Fonts
%CE17% Windows\Start Menu
C.[Strings]可选项,它用于定义一个或多个字符串关键字,也就是定义自己的宏字串的地方,如果项目中有用到的话,可以加上
Manufacturer="Demo"
D.[CEDevice]可选项。指定应用程序支持或不支持的平台,Windows CE 版本号、处理器类型值和不支持的平台的名称之类的信息。如果使用本机组件,则应包括为那些组件共同支持的每个处理器建立的子节,以便只将为每个处理器生成的 CAB 文件安装到使用相应处理器的设备上。
E.[SourceDisksNames]
是指定源文件程序所在的磁盘路径。
1=,"cab",,"D:\oasourcedir\programe\"
F.[SourceDisksFiles]
就是大家要打包的源文件清单,后面的=1就表示文件的路径,也就是[SourceDisksNames]中的1。
demo.exe=1
有多少个要打包的源文件都可以把名字加上即可,格式为:文件名.文件类型 = 1
G.[DefaultInstall]
CEShortcuts=CEShortcuts1
CopyFiles=Files.Application
就是安装程序到手机中时:CopyFiles参数表示安装时如何解压拷贝文件,AddReg参数表示安装时如何修改注册表。CEShortcuts参数表示如何在Wince桌面创建快捷方式。
CopyFiles=后面跟着是字段名字,即你所要做的拷贝工作到底有哪些。AddReg=作用一样。 例如在范本中,CopyFiles=Files.Common就是告诉cabwiz.exe要做一个拷贝文件工作,
需把一些文件拷贝到安装指定目录文件夹下,要拷贝的文件在[Files.Common]字段中。而AddReg=RegData表示安装程序还要修改注册表,修改的东西在[RegData]字段中。
H.[Files.Common]
安装拷贝文件到手机中,目标安装时需要拷贝哪些文件,应该与[SourceDisksFiles]中的文件名字一致。demo.exe,demo.exe,,0
I.[Shortcuts]
关于应用程序桌面快捷方式设置:
Demo App,0,demo.exe,%InstallDir%
字段语法说明一下,四个域,域之间用逗号隔开,前三个域的内容必须填写。
第一个域是快捷键名称,也就是在Wince桌面快捷方式名称。
第二个域中0表示是文件,其他任何非零数表示为目录,
第三个域就是快捷键的目标程序(目录),
第四个域是可选域,是安放快捷键的目录,默认目录就是[DestinationDirs]中Shortcuts = "",你可以指定其他目录
J.[RegData]
安装程序到手机步骤中时,修改注册表。
HKLM,SOFTWARE\Microsoft\Shell\Rai\:CallAlert,BKBitmapFile,,"\Storage\Application Data\Home\iMac\call1.jpg"
第一个“,”之前表示注册表中的四大块的名字,直接用缩写就可以了,如范本中HKLM就代表HKEY_LOCAL_MACHINE,其他三个分别为HKCR,HKCU和HKU。
第二个“,”之前表示你要修改的键的具体路径(如果没有会自动建立),即完整的项(key)名称,
第三个“,”之前就表示你要具体修改的键(就是我们经常在修改注册表的文章中看到的Value Name),如果没有的话程序就会自动建立,
第四个“,”之前表示值类型,目前我只懂得整数是0x00010001(见补充2),字符型数据这里你就不要填了,留着个“,”就可以了。最后就是你要填入的Value。
3.完整示例如下:
2Signature="$Windows NT$"
3Provider=solution
4CESignature="$Windows CE$"
5
6[CEStrings]
7CompanyName="公司名称"
8AppName="应用程序名称"
9InstallDir=%CE1%\Demo 安装目录
10
11[CEDevice]
12VersionMin=5.00
13VersionMax=5.00
14
15[DefaultInstall]
16CEShortcuts=Shortcuts
17CopyFiles=Files.Application
18
19[SourceDisksNames]
201=,"cab",,"D:\终端\程序\项目部署\制作CAB\Resources\"
21
22[SourceDisksFiles]
23demo.exe=1
24
25[DestinationDirs]
26Files.Application=0,%InstallDir%
27Shortcuts=0,%CE2%\Start Menu
28
29[Files.Application]
30demo.exe,demo.exe,,0
31
32
33[Shortcuts]
34测试Demo,0,demo.exe,%CE11%
二、CAB打包
INF文件写好后,就可以用cabwiz.exe制作CAB安装包了。可以写一个批处理:@echo on
"D:\终端程序\项目部署\制作CAB\cabwiz.exe" "D:\终端\程序\项目部署\制作CAB\miap.inf" /dest "D:\终端\程序\项目部署\制作CAB\Cabs" /err CabWiz.PPC.log /cpu ARMV5
cabwiz.ddf、makecab.exe需与cabwiz.exe放在统一目录
三、工具下载
1. cabwiz.exe
2. CABManager 3.0 绿色免注册版。遇到中文快捷方式乱码问题,可用该工具打开制作好的CAB包,然后保存即可