如何更换WinCE桌面墙纸与图标

时间:2011-09-04

  介绍一下怎样更换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,把原来的墙纸更换为功夫熊猫的墙纸。如图所示:


  
上一篇:分享我的WindowsCE.net 4.2目录经验
下一篇:用C语言编写的Linux应用程序

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料