WINCE6.0更换桌面壁纸和图标
********************************LoongEmbedded********************************
作者:LoongEmbedded(kandi)
时间:2011.10.07
类别:WINCE系统开发
********************************LoongEmbedded********************************
1. WINCE更换桌面壁纸
WINCE桌面的壁纸是在注册表中设置的,在\WINCE600\PUBLIC\WCESHELLFE\OAK\FILES\ wceshellfe.reg中我们看到下面的注册表信息
; initial value for background bitmap, if any
[HKEY_CURRENT_USER\ControlPanel\Desktop]
; @CESYSGEN IF IMAGING_IMG_JPEGDECODER
"wallpaper"="\\Windows\\WindowsCE.jpg"
; @CESYSGEN ELSE
; @CESYSGEN ENDIF IMAGING_IMG_JPEGDECODER
表示WINCE桌面的壁纸就是图片WindowsCE.jpg,可以在系统工程的release目录下没有找到WindowsCE.jpg这个文件,确是找到了倒是可以看到windowsce_qvgap.jpg、windowsce_qvgap.bmp、windowsce_vgal.jpg和windowsce_vgal.bmp两个文件。我们来看\WINCE600\PUBLIC\SHELL\OAK\FILES\shell.bib文件中的相关部分就明白了
图1
这四张图片都在G:\WINCE600\PUBLIC\SHELL\OAK\FILES下面,由图1可知只是简单的为这
个四个文件做了简单的定义而已。到此我们如果要替换壁纸,下面操作是其中一种办法:
1) 在project.bib中加入下面的内容
GirlFirend.jpg $(_FLATRELEASEDIR)\GirlFirend.jpg NK U
2) 在project.reg中加入下面的内容
[HKEY_CURRENT_USER\ControlPanel\Desktop]
"wallpaper"="\\Windows\\GirlFirend.jpg"
3) 把GirlFirend.jpg放在release目录下,然后Make Run-Time Image编译生成新的NK更新就可以了,更新之后新的壁纸显示如下:
图2
2. WINCE更换桌面图标
下面以更换“my device”的图标为例来说明如何更换桌面的图标,我们先来看”my device”的图标显示的相关内容,\WINCE600\PUBLIC\SHELL\OAK\FILES\shell.reg中的相关注册表信息下:
图3
上图中的“DisplayName”注册表项表示图标要显示的名字,比如“my device”,此名字取之于ceshell.dll中的资源,在此dll种有个ID和“my device”对应,比如“my device”的资源ID时候20482(0x5002);“DefaultIcon”表示要显示的图标,图标资源取之于ceshell.dll中的资源,在此dll种有个ID和“my device”要显示的图标对应,比如“my device”的资源ID时候4354(0x1102)。
这些显示的字符串和图标的ID\WINCE600\PUBLIC\SHELL\OAK\HPC\CESHELL\UI中的resource.h和ceshui_base.rc中定义,对于“my device”来说,其在resource.h中定义如下:
图4 图标ID的定义
图5 图标对应的名称资源ID定义
上面只是定义了相关资源的ID,还需借用这些ID来作为中间者定义这些资源的实际内容,在ceshui_base.rc中相关内容如下:
图6 图标对应资源来源地定义
图7 图标名称资源的定义
这样如果我们要更换图标及图标的名称,需要添加下面的内容:
1) 在resource.h中定义添加下面的定义
//kandi add,添加图标ID的定义,注意不要和系统定义的重复。
#define IDI_KANDI_LOGO 0x1299//4761
//kandi add,添加图标名称ID的定义,注意不要和系统定义的重复。
#define IDS_DISPLAY_LOGO 0x5099 // 20633
如图4和图5所示。
2) 在ceshui_base.rc中添加下面的定义
//kandi add,添加图标要显示内容的资源。
IDI_KANDI_LOGO ICON DISCARDABLE "RES\\loongembedded.ico"
//kandi add,添加图标名称要显示内容的定义。
IDS_DISPLAY_LOGO "kandi logo"
3) 把loongembedded.ico拷贝到\WINCE600\PUBLIC\SHELL\OAK\HPC\CESHELL\UI\RES文件下面
4) 到\WINCE600\PUBLIC\SHELL\OAK\HPC\CESHELL目录下选择rebuild编译,然后选择clean sysgen编译整个工程。
5) 在project.reg中加入要替换的相关注册表内容
; Drives (My Device)
[HKEY_CLASSES_ROOT\CLSID\{000214A0-0000-0000-C000-000000000046}]
"DisplayName"=mui_sz:"ceshell.dll,#20633"
"DefaultIcon"="\\Windows\\ceshell.dll,-4761"
[HKEY_CLASSES_ROOT\CLSID\{000214A0-0000-0000-C000-000000000046}\InprocServer32]
@="\\Windows\\ceshell.dll"
需要注意的是,“DisplayName”和“DefaultIcon”后面的资源ID要和第1)中定义的ID一样。
6) 选择Make Run-Time Image编译生成新的NK.bin来更新就可以了。
WINCE6.0更换桌面壁纸和图标相关推荐
- Android8.0更换桌面壁纸被拉伸,不居中显示问题
更换壁纸前: 随便换一个其它的: 再换回来,发现拉伸了,而且没有地方设置居中显示: 跟踪代码,发现原因: 代码位置:framewords/base/services/core/java/com/and ...
- 通过快捷方式快速更换桌面壁纸(必应每日壁纸)
通过快捷方式快速更换桌面壁纸(必应每日壁纸) 01 前言 02 正文 03 后记 01 前言 桌面壁纸,大家都懂的,换的不是壁纸,是寂寞 心情.市面上各种桌面美化软件就不提了,这里介绍一种高端非主流玩 ...
- Python桌面自定义---实现定时更换桌面壁纸
Python桌面自定义---实现定时更换桌面壁纸 1 效果 2 获取大量壁纸 3 Python代码实现定时更换壁纸 1 效果 大致效果如下,设置过定时更换壁纸的应该都知道是啥场景. 2 获取大量壁 ...
- linux更改桌面壁纸的脚本,自动更换桌面壁纸的脚本,支持Ubuntu 18.04系统
下面提供一个自动更换桌面壁纸的脚本,它支持Ubuntu 18.04.UbuntuKylin 18.04.Ubuntu Mate系统. 注意事项: 1.默认的壁纸通常在目录路径为/usr/share/b ...
- WINCE6.0去掉桌面快捷方式
WINCE6.0去掉桌面快捷方式,主要是修改xxx.bat文件,比如我要去掉My Documents和Media Player的快捷方式. (1) 去掉My Documents桌面快捷方式 找到 ...
- 基于红帽的Linux(centOS/fedora/RHEL)gnome3.34桌面环境用命令行更换桌面壁纸
GNOME桌面环境用命令行更换桌面壁纸 问题引入 这篇文章将向你介绍基于红帽的linux使用GNMOE桌面环境,使用命令行更改桌面壁纸的方法. 有人会问:用命令行更改壁纸岂不是无聊至极?其实并不无聊. ...
- 【Python】采集3万张4K超清壁纸,实现定时自动更换桌面壁纸脚本(内含完整源码)
前言 嗨喽!大家好,这里是魔王~ 发现一个不错的壁纸网站,里面都是超高清的图片 所以,我打算把这些壁纸都采集下来,然后在做一个自动跟换桌面壁纸的脚本,这样基本上你一年都可以每天都有不重复桌面了 先来看 ...
- Python实例一一更换桌面壁纸
最近学习了一些Python基础知识,想着利用Python做一些小的脚本,然后看到一篇博客,介绍了如何抓取Bing主页上的图片来作为电脑的壁纸,于是就照例实现一下,在实现的过程中遇到一些小问题,记录一下 ...
- 【树莓派入门】树莓派如何更换桌面壁纸?
树莓派更换壁纸 这里我使用的是树莓派3B+,其他大同小异啊,那我们开始吧. 省流教程 1-点击树莓派左上角的 草莓图标 2-点击 首选项 (倒数第三个) 3-点击 Appearance Setting ...
最新文章
- java判断时间为上午,中午,下午,晚上,凌晨
- 【Linux】【服务器】 CentOS7下安装MySQL详细过程步骤
- ercp手术为什么那么贵_尼泊尔佛像为什么那么贵?
- 通过最简单的button控件,深入学习SAP UI5框架代码系列之零
- C#访问postgresql数据库类MyPostDB的实现
- python selenium 点击开始按钮_使用Selenium和Python单击一个按钮
- mysql innodb 并发 插入 慢_InnoDB并发插入,居然使用意向锁?
- Linux对I/O端口资源的管理(5)
- MSDN 访谈录(MSDN Show)C#编程
- Hadoop组件概览
- excel熵值法计算权重_熵权法评价估计详细原理讲解
- SSM框架整合详细过程
- 【Python】爬虫-----下载B站视频
- Python Pandas实现简单Excel数据表合并
- html表格的常用样式
- 电视影评-《战狼2》观后感
- PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换
- html里面的view怎么修改,asp.net mvc 3-在局部视图中修改MVC 3 ViewBag不会保留到_Layout.cshtml...
- 5.WEB及远程操作
- FPS透视自瞄基本概念
热门文章
- 020_Jedis的Set数据类型
- 071_设置日期方法
- java的classpath配置文件_Java Classpath及.properties配置文件
- RecyclerView.Adapter:全能notify解决方案
- oracle服务端用sql查看连接到数据库的IP
- python翻译文档地址
- 用友t6怎么用文件服务器设置,用友T6库存管理选项设置:专用设置
- android程序db文件用什么编辑器,在 Android Studio 上调试数据库 ( SQLite )
- java将本地图片转为bas64_JAVA将图片(本地或者网络资源)转为Base64字符串
- python2.7 pip安装htmlreport报错_pytest十五:pytest-html 生成 html 报告