新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > WinCE桌面墻紙及圖標更換

WinCE桌面墻紙及圖標更換

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

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

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

[HKEY_CURRENT_USERControlPanelDesktop]

"wallpaper"=\Windows\WindowsCE.bmp

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

說白了,更換墻紙就是改注冊表設置。最簡單的方法就是修改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"

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

; 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"

簡單解釋一下:

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

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

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

實際上,他們都來源于ceshell.dll中的資源文件,這個我們需要看一下WINCE600publicshelloakhpcceshellui目錄下的resource.hceshui_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資源的定義,根據(jù)這些可以在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就可以了。首先把自己的圖標拷貝到WINCE600publicshelloakhpcceshelluires目錄下面,然后在resource.h中定義幾個新的ID,在cehui_base.rc中將新定義的ID和相應的圖標或者名字相關聯(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"

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

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

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

我把原來的My Device更換為Root,把Recycle Bin更換為Box,把墻紙更換為功夫熊貓的墻紙了??瓷先ミ€不錯啊。


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


評論


相關推薦

技術專區(qū)

關閉