介绍一下怎样更换WinCE桌面墙纸与图标。
更换WinCE的墙纸,是在注册表中设置的,编译完WinCE工程后,所有reg文件中的内容都会被合并为reginit.ini文件。打开它可以找到下面的内容:
[HKEY_CURRENT_USER\CONtrolPanel\Desktop]
"wallpaper"=\\Windows\\WindowsCE.bmp
默认显示的是WindowsCE.bmp文件,虽然被编译的release目录下没有WindowsCE.bmp文件,但是我们可以看到windowsce_qvgap.bmp和windowsce_vgal.bmp两个文件。这里呢看一下\WINCE600\publIC\shell\files\shell.bib文件中的定义就会明白。
其实更换墙纸也就是改注册表设置。比较简单的方法是修改project.bib和project.reg文件。先在project.bib文件中添加如下内容:
kungfuPanda.bmp d:\WINCE600\OSDesigns\Emulator\Emulator\RelDir\DeviceEmulator_ARMV4I_Release\wall.bmp NK S
在project.reg文件添加如下的内容:
[HKEY_CURRENT_USER\ControlPanel\Desktop]
"wallpaper"="\\Windows\\kungfuPanda.bmp"
把这两个文件复制到工程编译的release目录下面,重新Makeimg就可即可。在WinCE启动以后,我们看到墙纸已经被更换,还看到桌面上的”My Device”和”Recycle Bin”。
更换图标和名字,也是从注册表入手。相关注册表配置如下:
; Drives (My Device)
[HKEY_CLASSES_ROOT\CLSID\{000214A0-0000-0000-C000-000000000046}]
"DisplayName"=mui_sz:"ceshell.dll,#20482"
"DefaultIcon"="\\Windows\\ceshell.dll,-4354"
[HKEY_CLASSES_ROOT\CLSID\{000214A0-0000-0000-C000-000000000046}\InprocServer32]
@="\\Windows\\ceshell.dll"
; Recycle Bin (BitBucket)
[HKEY_CLASSES_ROOT\CLSID\{000214A1-0000-0000-C000-000000000046}]
"DisplayName"=mui_sz:"ceshell.dll,#20481"
"DefaultIcon"="\\Windows\\ceshell.dll,-4352"
"AltIcon"="\\Windows\\ceshell.dll,-4355"
[HKEY_CLASSES_ROOT\CLSID\{000214A1-0000-0000-C000-000000000046}\InprocServer32]
@="\\Windows\\ceshell.dll"
“DisplayName”、“DefaultIcon”、“AltIcon”都来源于ceshell.dll中的资源文件,这个看一下\WINCE600\public\shell\oak\hpc\ceshell\ui目录下的resource.h和ceshui_base.rc两个文件,在resource.h中可找到如下定义:
#define IDS_DISPLAY_RECYCLEBIN 0x5001 //20481
#define IDS_DISPLAY_DRIVES 0x5002 //20482
#define IDI_BITBUCKET 0x1100 //4352
#define IDI_BITBUCKET_FULL 0x1103 //4355
#define IDI_MYCOMPUTER 0x1102 //4354
这些就是ID资源的定义,根据这些可在cehui_base.rc中找到相应的资源,如下:
IDS_DISPLAY_RECYCLEBIN "Recycle Bin"
IDS_DISPLAY_DRIVES "My Device"
IDI_BITBUCKET ICON DISCARDABLE "RES\\bitbucket.ico"
IDI_BITBUCKET_FULL ICON DISCARDABLE "RES\\bitbucket_full.ico"
IDI_MYCOMPUTER ICON DISCARDABLE "RES\\mycomputer.ico"
若要更换图标或者改名字,修改cehui_base.rc即可。先把图标拷贝到\WINCE600\public\shell\oak\hpc\ceshell\ui\res目录下面,然后在resource.h中定义几个新的ID,在cehui_base.rc中将新定义的ID及相应的图标或者名字相关联。
然后打开工程的project.reg文件,添加下面的内容:
; Drives (My Device)
[HKEY_CLASSES_ROOT\CLSID\{000214A0-0000-0000-C000-000000000046}]
"DisplayName"=mui_sz:"ceshell.dll,#20736"
"DefaultIcon"="\\Windows\\ceshell.dll,-4624"
[HKEY_CLASSES_ROOT\CLSID\{000214A0-0000-0000-C000-000000000046}\InprocServer32]
@="\\Windows\\ceshell.dll"
; Recycle Bin (BitBucket)
[HKEY_CLASSES_ROOT\CLSID\{000214A1-0000-0000-C000-000000000046}]
"DisplayName"=mui_sz:"ceshell.dll,#20737"
"DefaultIcon"="\\Windows\\ceshell.dll,-4625"
"AltIcon"="\\Windows\\ceshell.dll,-4355"
[HKEY_CLASSES_ROOT\CLSID\{000214A1-0000-0000-C000-000000000046}\InprocServer32]
@="\\Windows\\ceshell.dll"
打开工程的命令行窗口,切换到\WINCE600\public\shell\oak\hpc\ceshell目录,运行build进行编译,重新编译WinCE工程。
编译完成以后,运行WinCE就可以看到墙纸、My Device和Recycle Bin的名字和图标都被更换了。
例如把原来的My Device换为Root,把Recycle Bin换为Box,把原来的墙纸更换为功夫熊猫的墙纸。如图所示:
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。