【IT168 专稿】Windows CE是微软为嵌入式设备打造的操作系统,而嵌入式设备可谓多种多样,这就要求CE操作系统必须是可定制的,所以微软将Windows CE设计为模块化的操作系统。说简单点,我们可以把Windows CE想像成一盒积木,你可以用积木搭建出任何物体,但不一定要把所有的积木都用上。
Windows CE界面长得很像普通PC上使用的Windows系统,让人误以为基于Windows CE的开发和普通Windows开发区别不大。很不幸,它们还是有非常多的区别,因为Windows CE是针对小型移动设备,而这类装置是千差万别的。由于微软只提供Windows CE 内核,它并不直接支持PC 的硬件,因此几乎所有外部的硬件驱动都需要用户根据所选择的芯片来写驱动程序,这给开发者带来了很大的麻烦。所以,开发者必须了解目标设备和部署应用程序的方式,例如注册表是如何工作的就是其中之一。
1.什么是Windows CE注册表
(1)什么是Windows CE注册表
在微软的嵌入式操作系统Windows CE中,注册表扮演着非常重要的角色。与桌面Windows一样,Windows CE注册表(Registry)也是一个系统数据库,用来保存应用程序、驱动程序、用户的设定以及其它一些系统的配置信息,通常还存储着操作系统运作和调用程序的状态信息。它的结构与磁盘的逻辑结构相似,是采用树形结构来管理配置信息。例如,每个用户的配置文件、安装的应用程序以及每个应用程序可以创建的文档类型、文件夹和应用程序图标的属性表设置、系统上存在哪些硬件以及正在使用哪些端口等。
(2)注册表的作用
一般来说,注册表控制所有应用程序和硬件外设的驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动本身。例如,每个注册表的参数项控制一个用户的功能或者计算机功能。在没有注册表的情况下,操作系统是不能获得足够的信息来运行和控制外设、应用程序及正确响应用户的输入。
对于外设来说,注册表是一个记录驱动设置和位置的数据库。当操作系统需要存取硬件设备时,它就需要使用外设驱动程序。但在Windows CE中这个外设驱动是独立于操作系统的,所以操作系统需要知道从哪里找到它们,例如文件名、版本号、其它设置和信息。因此,注册表上没有此设备的记录时,它们就不能被使用。
对于应用程序来说,当一个用户准备运行一个应用程序时,注册表提供应用程序的信息给操作系统,这样应用程序就可以被找到。因为注册表保存了应用程序的缺省数据和辅助文件的位置信息和其它可选项,同样也保存了其它的安装信息,安装软件的版本号,序列号等。
(3)注册表的根键和函数
Windows CE注册表和其它Windows操作系统的注册表概念和结构基本相同。例如Windows CE的注册表限制有:键名最大长度255个字符、数据最大 4KB、子键深度最大值 16层。Windows CE支持四个根键,描述如下:HKEY_LOCAL_MACHINE,硬件和驱动配置数据;HKEY_CURRENT_USER,用户配置数据;HKEY_CLASSES_ROOT,OLE和文件类型匹配配置数据;HKEY_USERS,适用于所有用户的数据。
另外,Windows CE操作注册表的函数有:打开RegOpenKeyEx 和创建RegCreateKeyEx;读RegQueryValueEx写RegSetValueEx;枚举入口或子键RegEnumValue、RegEnumKeyEx;删除入口或子键RegDeleteValue、RegDeleteKey;关闭RegCloseKey等。