TIPS 先扫清知识障碍~
.cab安装文件:WindowsCE CAB文件和传统的CAB文件不同,WindowsCE CAB文件包括了很多信息:
软件制作者的公司,
软件名称,文件安装在PPC/SP的位置,
软件的系统需求(例如一个只能用在SH3的CPU的cab包,用 WinCE CAB Manager打开后会标示Processor Type:Hitashi SH3,而且还会标示最高支持版本是3.1,最低是2.0,所以这个包在2003系统的机子里无法安装),写入注册表的信息,快捷方式的位置,以及 Setup DLL文件。
WinCE CAB Manager 2.0:一款电脑上使用的
软件,是为WindowsCE操作系统下的程序员和开发员设计的程序,它直接读取Windows CE CAB格式的文件,去掉了学习使用复杂的Windows CE INF文件格式来安装Windows CE程序。可以制作cab包或者解开cab包,可以看到cab包里的所有程序和注册表内容。也可以修改通过Microsoft Visual Studio 2003 / 2005制作的CAB安装文件。这个
软件可以到这里
http://www.ppcos.net/2008/02/29/145416243.shtml下载
Windows CE CAB文件中的Setup DLL文件:可以为
软件制作者提供更多的自定义功能的DLL文件,包括Install_Init,Install_Exit, Uninstall_Init和Uninstall_Exit,这个文件一般放在PPC/SP的\Windows\AppMgr下,可以为
软件在安装前、安装后、卸载前、卸载后提供更多作用,例如有的
软件在用cab方式安装后,卸载时会自动删除了
软件运行时自动添加到注册表的信息(一般在 HKEY_LOCAL_MACHINE\SOFTWARE或HEKY_CURRENT_USER\Software下)。从某种意义上来说,安装绿色版的
软件甚至不如安装CAB版的
软件,例如绿色版的TCPMP在安装前虽然没有写入注册表,但在运行后会在HKEY_LOCAL_MACHINE\ SOFTWARE\TCPMP留下信息,要删除
软件时必须手动到注册表删除,否则会在注册表留下垃圾信息。但如果是cab安装版,由于有Setup DLL文件,到“删除
软件”控制面版删除
软件时,DLL文件会自动删除这个留下的注册表信息。
Windows CE系统的存储卡:WinCE与Symbian系统最大的不同就是,WinCE没有像Symbian一样与C:盘、D:盘和E:盘而且存储卡单独作为一个 “分区”。WinCE没有“分区”的概念,它的存储卡是作为根目录的一个文件夹存在的。在不同的语言版本的系统中,这个文件夹的名称是不同的,简体中文机一般是 \存储卡,另外还有 \储存卡,\Storage Card, \SDCard,\Cf Card等
现状
一般的来说,Pocket PC(简称PPC,下同)和Smartphone(简称SP,下同)的
软件安装方法有三种:1.如果下载的是在电脑上安装的.EXE文件,点击这个文件安装后,通过ActiveSync连接PPC/SP进行安装;2.如果下载的是.cab的文件,就把这个文件拷到存储卡上,用PPC/SP上的资源管理器点击这个文件进行安装;3.如果下载的直接是绿色
软件,直接拷到卡上运行(一般这种方式还要自己用PPC/SP的资源管理器制作快捷方式到开始菜单中,使得打开程序能比较方便)。
很多朋友都选择第三种安装方式,原因有下:1.它没有在安装过程中往注册表写入信息;2.能够自己选择安装到机里或卡上,对于存储内存特别紧张的人来说特别重要;3.它一般不用往存储内存(例如\Windows)里面放文件,不会占用宝贵的存储内存空间。但是并不是所有
软件都能找到绿色版,特别是和系统有关的
软件。而且当在PPC直接删除一个
软件时,可能没有删除这个
软件运行时写入注册表的信息。
虽然现在第一种方法的.EXE文件在电脑安装后,可以在ActiveSync中选择安装到卡上了;第二种方法的.cab文件,在Windows Mobile 2003系统能通过CabInstl这个
软件自定义安装的目录(到这里下载
http://www.ppcos.net/2008/02/19/10060718.shtml ),在Windows Mobile 5.0系统可以选择安装到卡上,但是cab包里的一部分文件可能会向存储内存写入文件,而且也不知道往注册表写入或修改了什么
解剖
其实三种安装方法在本质上都是一样的,就是往PPC/SP的机里或卡上放入程序文件,有的还往注册表写入信息,并创建快捷方式。
在电脑上安装下载的.EXE文件,在安装后其实就是通过ActiveSync把.cab文件拷贝到PPC/SP里安装的。
因此,鉴于很多
软件的Setup DLL都没有在卸载是自动删除
软件运行时自动写入注册表的信息,我们可以制作自己的绿色
软件,或者自己取得或修改.cab文件,使得.cab文件能够往自己想要的路径安装。
解决方法
1.首先要从电脑安装的.EXE文件中取得.cab文件,在点击安装后,不要把PPC/SP和电脑连接或同步。如果安装过程有让你选择所安装在电脑上的路径,就到电脑所安装的文件夹中找.cab文件,例如CardExport就可以自己选择(如图1,图2)。如果安装过程没有让你选择所安装在电脑上的路径,那么一般就是自己安装到C:\Program Files\(例如Resco出的
软件)或者是ActiveSync的安装目录下(例如E:\Program Files\Microsoft ActiveSync\,如图3),或者是Temp目录(通常是C:\Documents and Settings\XXXXX\Local Settings\Temp,中间的XXXXX是你的用户名称)
如果是PPC,有时还能看到多个.cab文件,一般在文件中会找到MIPS(或是4000)、CH3(或者10003)、ARM(或是2577)还有 ARMV4,它们是PPC对应的CPU类型,按照现在的新机来说,2002的系统选择ARM,2003和WM5选择ARM或ARMV4。
2.接着就可以修改cab文件了,推荐用WinCE CAB Manager 2.0来修改,(请注意:cab文件不要用WinRAR打开),把.cab文件关联WinCE CAB Manager,或者在WinCE CAB Manager中打开cab文件就可以看到所有的安装文件以及安装目录,还有向注册表写入的信息,以及cab包所支持的OS版本、CPU类型
举个例子,打开NetFront V3.3的cab包NF33PPC3ARENR106D2.CAB(如图4,图5),打开后可以看到最低支持WinCE 4.0,即WM2003,支持的CPU是ALL(全部支持),可以看到Setup DLL,Files,Shortcuts,Registry,分别是自定义安装/卸载DLL文件,安装文件,快捷方式,写入注册表信息。
如图4,可以看到cab包中的文件装往PPC的目录,例如其中NetFront33.exe的Location是%InstallDir%,% InstallDir%表示可以自定义安装目录,例如在2003系统用CabInstl把
软件装往 \存储卡\Program Files,或者在WM5选择安装到其他路径,写入注册表的信息中如果有%InstallDir%就会改为相应的路径
从图4还可以看到有大量的bmp格式图片写往%CE1%,由于Windows CE系统是一个多国语言的系统,某些重要文件夹在不同语言版本中可能不同,为了统一,使得安装顺利,微软用一系列的%CE*%来代表不同的文件夹,例如 \Windows\”开始”菜单\程序 就是%CE11%,cab包的制作者不会把它写成\Windows\Start Menu\Programs,因为英文系统的开始菜单目录名称和中文系统不同
下面是PPC/SP系统的%CE%所对应的英文系统的名称(图6)
由此,可以看出,这个cab包中的bmp格式图片和Html文件就是写往\Windows,是包括图片的帮助文件,由于存储内存空间的宝贵,可以用 WinCE CAB manager把它们解压到电脑后再把它们删除,或者把这些文件的%CE1%改为%InstallDir%(图7),这样就不会装到\Windows下了。这也是一下朋友明明选择把
软件安装到卡上,但存储内存依然减少的原因。依此类推,通过修改文件安装路径而节省存储空间。但有些文件是不能随便更改的,例如DLL文件。但也不一定,例如一部分输入法通过更改注册表可以装到Storage或存储卡上
小技巧:让你不用CabInstl也能自定义安装路径。只要把%InstallDir%直接改为你想要的路径。例如想要把
软件装到存储卡上的\ Programs\NetFront,就把“%InstallDir%”改为“\存储卡\Programs\NetFront”。(假设你的卡名是\存储卡)
3.制作绿色
软件。虽然很多cab版本的
软件都带有Setup DLL文件,但只有在\Windows\AppMgr 留下DLL文件,才会在删除
软件后自动删除注册表留下的信息。一般来说,就算是这些信息留下来了,对系统也没有多大的影响,也可以用
软件清除。对于经常硬启的人来说,绿色
软件是非常方便的,不用重新安装。因此,推荐除了重要的系统
软件,其他的都用绿色
软件。
制作很简单,直接选上文件,右击选Extract到电脑的一个目录就可以了,还要注意子目录的问题,例如图中的cab文件中的GoogleEng.Src 是\%InstallDir%\Search,因此在解压到电脑的那个目录时,还得自己创建一个子目录\Search。(如图8)
如果有写入注册表,也可以自己制作一个.Reg格式注册表导入文件,来导入注册表。
最后,绿色
软件制作完成,直接拷到卡上使用。