新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > WinCE桌面墻紙及圖標(biāo)更換

WinCE桌面墻紙及圖標(biāo)更換

作者: 時(shí)間:2011-02-24 來源:網(wǎng)絡(luò) 收藏

網(wǎng)上關(guān)于WinCE更換墻紙的文章一大堆,我也來寫一篇,和網(wǎng)上已有的文章沒什么區(qū)別。以前寫的WinCE Blog大部分都是BSP相關(guān)的,以后打算寫點(diǎn)WinCE系統(tǒng)定制方面的,就從這里開始吧。

關(guān)于WinCE的墻紙,是在注冊(cè)表中設(shè)置的,編譯完WinCE工程以后,所有的reg文件中的內(nèi)容都會(huì)被合并為reginit.ini文件。打開這個(gè)文件,可以找到如下內(nèi)容:

[HKEY_CURRENT_USERControlPanelDesktop]

"wallpaper"=\Windows\WindowsCE.bmp

默認(rèn)情況下,顯示的是WindowsCE.bmp文件,但是被編譯工程的release目錄下并沒有WindowsCE.bmp文件,倒是可以看到windowsce_qvgap.bmpwindowsce_vgal.bmp兩個(gè)文件。這里需要看一下WINCE600publicshellfilesshell.bib文件中的定義就明白了。

說白了,更換墻紙就是改注冊(cè)表設(shè)置。最簡(jiǎn)單的方法就是修改project.bibproject.reg文件。首先在project.bib文件中添加如下內(nèi)容:

kungfuPanda.bmp d:WINCE600OSDesignsEmulatorEmulatorRelDirDeviceEmulator_ARMV4I_Releasewall.bmpNK S

然后在project.reg文件添加如下內(nèi)容:

[HKEY_CURRENT_USERControlPanelDesktop]

"wallpaper"="\Windows\kungfuPanda.bmp"

最后將這兩個(gè)文件拷貝到工程編譯的release目錄下面,重新Makeimg就可以了。在WinCE啟動(dòng)以后,我們會(huì)看到墻紙已經(jīng)被更換,同樣還能看到桌面上的”My Device””Recycle Bin”,現(xiàn)在我想把他們的圖標(biāo)和名字也更換了,當(dāng)然還要從注冊(cè)表入手。相關(guān)注冊(cè)表配置如下:

; Drives (My Device)

[HKEY_CLASSES_ROOTCLSID{000214A0-0000-0000-C000-000000000046}]

"DisplayName"=mui_sz:"ceshell.dll,#20482"

"DefaultIcon"="\Windows\ceshell.dll,-4354"

[HKEY_CLASSES_ROOTCLSID{000214A0-0000-0000-C000-000000000046}InprocServer32]

@="\Windows\ceshell.dll"

; Recycle Bin (BitBucket)

[HKEY_CLASSES_ROOTCLSID{000214A1-0000-0000-C000-000000000046}]

"DisplayName"=mui_sz:"ceshell.dll,#20481"

"DefaultIcon"="\Windows\ceshell.dll,-4352"

"AltIcon"="\Windows\ceshell.dll,-4355"

[HKEY_CLASSES_ROOTCLSID{000214A1-0000-0000-C000-000000000046}InprocServer32]

@="\Windows\ceshell.dll"

簡(jiǎn)單解釋一下:

“DisplayName”:顯示的名字,名字來源于ceshell.dll中的資源,其中My Device的資源ID20482,Recycle Bin的資源ID20481

“DefaultIcon”:顯示的圖標(biāo),圖標(biāo)來源于ceshell.dll中的資源,其中My Device的圖標(biāo)資源ID4354,Recycle Bin的圖標(biāo)資源ID4352。

“AltIcon”:是指Recycle Bin中有東西時(shí)候的圖標(biāo),大家都知道Recycle Bin空的時(shí)候和有東西的時(shí)候,圖標(biāo)顯示是不一樣的,這個(gè)圖標(biāo)資源來源于ceshell.dll中的圖標(biāo)資源,ID4355。

實(shí)際上,他們都來源于ceshell.dll中的資源文件,這個(gè)我們需要看一下WINCE600publicshelloakhpcceshellui目錄下的resource.hceshui_base.rc兩個(gè)文件,在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資源的定義,根據(jù)這些可以在cehui_base.rc中找到相應(yīng)的資源,如下:

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"

如果想更換圖標(biāo)或者改名字,修改cehui_base.rc就可以了。首先把自己的圖標(biāo)拷貝到WINCE600publicshelloakhpcceshelluires目錄下面,然后在resource.h中定義幾個(gè)新的ID,在cehui_base.rc中將新定義的ID和相應(yīng)的圖標(biāo)或者名字相關(guān)聯(lián)。

接下來打開工程的project.reg文件,添加下面的內(nèi)容:

; Drives (My Device)

[HKEY_CLASSES_ROOTCLSID{000214A0-0000-0000-C000-000000000046}]

"DisplayName"=mui_sz:"ceshell.dll,#20736"

"DefaultIcon"="\Windows\ceshell.dll,-4624"

[HKEY_CLASSES_ROOTCLSID{000214A0-0000-0000-C000-000000000046}InprocServer32]

@="\Windows\ceshell.dll"

; Recycle Bin (BitBucket)

[HKEY_CLASSES_ROOTCLSID{000214A1-0000-0000-C000-000000000046}]

"DisplayName"=mui_sz:"ceshell.dll,#20737"

"DefaultIcon"="\Windows\ceshell.dll,-4625"

"AltIcon"="\Windows\ceshell.dll,-4355"

[HKEY_CLASSES_ROOTCLSID{000214A1-0000-0000-C000-000000000046}InprocServer32]

@="\Windows\ceshell.dll"

這些配置是為了修改顯示名字和圖標(biāo),主要是修改ceshell.dll中的資源ID。

最后打開工程的命令行窗口,切換到WINCE600publicshelloakhpcceshell目錄,運(yùn)行build進(jìn)行編譯,然后重新編譯WinCE工程。

最后編譯完成以后,運(yùn)行WinCE就可以看到墻紙以及My DeviceRecycle Bin的名字和圖標(biāo)都被更換了。如圖:

我把原來的My Device更換為Root,把Recycle Bin更換為Box,把墻紙更換為功夫熊貓的墻紙了。看上去還不錯(cuò)啊。


linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉