设为首页 收藏本站
查看: 848|回复: 0

winCE标准shell美化

[复制链接]

尚未签到

发表于 2015-10-25 14:48:06 | 显示全部楼层 |阅读模式
winCE标准shell美化
--作者:赖玉平(Auly)aulyp@163.com
1更换WinCE的墙纸
更换墙纸就是改注册表设置,编译完WinCE工程以后,所有的reg文件中的内容都会被合并为reginit.ini文件。
platform.reg文件中添加如下内容:
[HKEY_CURRENT_USER/ControlPanel/Desktop]
"wallpaper"="//Storage Card//LOGO.bmp"
然后把LOGO.bmp放到Storage Card这个盘中就可以了,开机就能看到桌面已改

2修改桌面图标
相关注册表
; 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的资源ID20482Recycle Bin的资源ID20481
DefaultIcon:显示的图标,图标来源于ceshell.dll中的资源,其中My Device的图标资源ID4354Recycle Bin的图标资源ID4352
AltIcon:是指Recycle Bin中有东西时候的图标,大家都知道Recycle Bin空的时候和有东西的时候,图标显示是不一样的,这个图标资源来源于ceshell.dll中的图标资源,ID4355
实际上,他们都来源于ceshell.dll中的资源文件,这个我们需要看一下/WINCE600/public/shell/oak/hpc/ceshell/ui目录下的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
所以,要改桌面图标,关键是在ceshell.dll中加入我们要用的icon资源,
1、首先把自己的图标拷贝到/WINCE600/public/shell/oak/hpc/ceshell/ui/res目录下面
2、然后在resource.h中定义几个新的ID
#define IDI_asdf                                  0x1105   /*4357 */
3、在cehui_base.rc中将新定义的ID和相应的图标或者名字相关联。
IDI_asdf                ICON   DISCARDABLE   "RES//asdf.ico"
4打开工程的project.reg文件,添加下面的内容:
; Drives (My Device)
[HKEY_CLASSES_ROOT/CLSID/{000214A0-0000-0000-C000-000000000046}]
"DisplayName"=mui_sz:"ceshell.dll,#20482"
"DefaultIcon"="//Windows//ceshell.dll,- 4357" ;显示为我们更改的图标
[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
3然后把ceshell.dll重新编译到工程中
这是最重要的一步,也是最难的一步
1、   WINCE500/PUBLIC/SHELL/OAK目录下的HPC文件夹(shell源码)复制到本文件夹下,并重命名例如“RagooShell
2、  修改WINCE500/PUBLIC/SHELL/OAK目录下dir文件,修改如下: DIRS= RagooShell(其它的不要)
3、  删除UI文件夹里的obj文件夹,还有exploerer等里面obj文件夹,如果不删除,它会默认不编译新的内容,而用以前的资源内容。
4、  myshell内代码单独编译。运行PB6.0中菜单Open Release Directory 进入/WINCE500/PUBLIC/SHELL/OAK目录下,输入:build -c。将RagooShell文件夹下代码,及wince shell源码进行编译生成.lib.res文件
5、  Sysgen一下,在工程目录下得到ceshell.res等文件,
6、  .lib及资源文件Link.dll文件, /PUBLIC/SHELL/OAK/RagooShell文件夹下创建ceshell_make文件夹
ceshell_make文件夹下创建makefilesources文件
makefile文件内容: !INCLUDE $(_MAKEENVROOT)/makefile.def
sources文件内容:
TARGETNAME=ceshell
TARGETTYPE=DYNLINK
RELEASETYPE=PLATFORM
DLLENTRY=_DllMainCRTStartup
WINCEOEM=1
INCLUDES=../inc;../../inc
TARGETLIBS= /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/oak/target/ARMV4I/retail/0C0A/ceshell.res  /  //不同的语言,有不同的文件夹,简体中文 0804
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/uuid.lib  /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/ole32.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/oleaut32.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/commctrl.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/oak/lib/ARMV4I/retail/shcore.lib /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/aygutils.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/coredll.lib
SOURCELIBS= /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/ceshapi.lib /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/ceshui.lib /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/taskbarlist.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/coredll.lib
SOURCES= /
CDEFINES=$(CDEFINES) -DREAD_FROM_REGISTRY
DEFFILE=D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/ceshell.def
这样就可以通过这两个文件生成ceshell.dll;
运行PB6.0菜单Build OS—Open Release Directory,进入DOS状态。进入到
WINCE600/PUBLIC/SHELL/OAK/ RagooShell /ceshell_make目录下,输入:build -c 这样就生成了ceshell.dll文件。
注意
D:/WINCE600/OSDesigns/RagooMID_SHELL/Wince600/SMDK6410_ARMV4I/cesysgen/oak/target/ARMV4I/retail 目录下的ceshell.res文件,是生成ceshell.dll的关键,
0C0A_西班牙语
040C_法语
041D_瑞典
0404_繁体
0407_德语
0410_意大利
0411_日语
0412_朝鲜
0413_荷兰
0416_葡萄牙
0419_俄语
0804—简体中文
0409_英文

如果要修改控制面板里面的图标,它们在
D:/WINCE600/PUBLIC/WCESHELLFE/OAK/CTLPNL/CPLMAIN/RES 目录下,修改方法同上。如果要修改整套图标,最好的方法是替换原来的图标,就是用新图标与原图标命名一样,进行替换,这样很省事,
4.lib.res文件Link.exe文件
RagooShell文件夹下创建explorer_make文件夹,在explorer_make文件夹下创建makefilesources文件
makefile文件内容: !INCLUDE $(_MAKEENVROOT)/makefile.def
sources文件内容:
TARGETNAME=explorerRagoo
TARGETTYPE=PROGRAM
RELEASETYPE=OAK
TARGETLIBS= /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/coredll.lib /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/explorer.lib /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/explorer.res /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/explorer_ie.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/uuid.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/ole32.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/oleaut32.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/commctrl.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/ceshell.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/oak/lib/ARMV4I/retail/shcore.lib /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/aygutils.lib  /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/favorites.lib /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/taskbar.lib /
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/oak/lib/ARMV4I/retail/ieceext.lib /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/shellaygfuncs.lib /
D:/WINCE600/PUBLIC/SHELL/OAK/LIB/ARMV4I/RETAIL/shellpslayg.lib
SOURCELIBS= /
SOURCES= /
通过这两个文件,可以单独生成explorerRagoo.exe文件 运行PB6.0中菜单Build OS—Open Release Directory,进入DOS状态。进入到 WINCE600/PUBLIC/SHELL/OAK/RagooShell/explorer_make目录下,输入:build -c 这样就生成了explorerRagoo.exe文件。
加入系统:
修改shell.bin中的
; @CESYSGEN IF SHELL_MODULES_EXPLORER     explorer1.exe    $(_FLATRELEASEDIR)/explorer1.exe                  NK  S
explorerRagoo.execeshell.dllceshell.relceshell.pdbceshell.map文件拷到
D:/WINCE600/OSDesigns/RagooMID_CAMERA/RagooMID1/Wince600/SMDK6410_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/目录下并覆盖原来的文件。
shell.reg中的
[HKEY_LOCAL_MACHINE/init] "Launch50"="explorer.exe" "Depend50"=hex:14,00, 1e,00 改为
[HKEY_LOCAL_MACHINE/init] "Launch50"="explorer1.exe" "Depend50"=hex:14,00, 1e,00
             版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-130679-1-1.html 上篇帖子: MAC下终极 Shell——ZSH 下篇帖子: BeagleBone Black板第五课:Shell脚本编程实验
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表