现在的位置: 首页 > 综合 > 正文

WinCE桌面墙纸及图标更换

2018年04月05日 ⁄ 综合 ⁄ 共 3491字 ⁄ 字号 评论关闭

转帖来的。学习..........

 

网上关于
WinCE
更换墙纸的文章一大堆,我也来写一篇,和网上已有的文章没什么区别。以前写的
WinCE
Blog
大部分都是
BSP
相关的,以后打算写点
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”


:显示的名字,名字来源于
ceshell.dll
中的资源,其中
My Device
的资源
ID

20482


Recycle Bin
的资源
ID

20481


“DefaultIcon”


:显示的图标,图标来源于
ceshell.dll
中的资源,其中
My Device
的图标资源
ID

4354


Recycle Bin
的图标资源
ID

4352


“AltIcon”


:是指
Recycle Bin
中有东西时候的图标,大家都知道
Recycle Bin
空的时候和有东西的时候,图标显示是不一样的,这个图标资源来源于
ceshell.dll
中的图标资源,
ID

4355


 

实际上,他们都来源于
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"

 

这些配置是为了修改显示名字和图标,主要是修改
ceshell.dll

中的资源
ID


 

最后打开工程的命令行窗口,切换到
/WINCE600/public/shell/oak/hpc/ceshell

目录,运行
build

进行编译,然后重新编译
WinCE

工程。

 

最后编译完成以后,运行
WinCE

就可以看到墙纸以及
My Device


Recycle Bin

的名字和图标都被更换了。如图:




 

 

我把原来的
My Device

更换为
Root

,把
Recycle Bin

更换为
Box

,把墙纸更换为功夫熊猫的墙纸了。看上去还不错啊。

 



抱歉!评论已关闭.