新聞中心

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

        WinCE桌面墻紙及圖標更換

        作者: 時間:2011-02-24 來源:網絡 收藏

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

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

        [HKEY_CURRENT_USERControlPanelDesktop]

        "wallpaper"=\Windows\WindowsCE.bmp

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

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

        kungfuPanda.bmp d:WINCE600OSDesignsEmulatorEmulatorRelDirDeviceEmulator_ARMV4I_Releasewall.bmpNK S

        然后在project.reg文件添加如下內容:

        [HKEY_CURRENT_USERControlPanelDesktop]

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

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

        ; 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的圖標資源ID4354Recycle 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資源的定義,根據這些可以在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和相應的圖標或者名字相關聯。

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

        ; 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操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大庆市| 亚东县| 上蔡县| 法库县| 龙里县| 平安县| 册亨县| 金山区| 罗城| 盱眙县| 双牌县| 囊谦县| 彭阳县| 建湖县| 南康市| 安义县| 许昌市| 南雄市| 巩义市| 七台河市| 顺义区| 霍城县| 杭锦旗| 贞丰县| 毕节市| 锡林郭勒盟| 苍南县| 霍城县| 缙云县| 大方县| 芦溪县| 资中县| 白沙| 文安县| 洪江市| 仁寿县| 且末县| 沁源县| 连南| 屏东县| 阜康市|