zoukankan      html  css  js  c++  java
  • 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来更新就可以了。

  • 相关阅读:
    laravel 的passport Oauth 认证登录请求 的 oauth_token 重置
    多个php版本的composer使用
    MySQL查询语句练习题(面试时可能会遇到哦!)
    tp5 url 线上访问 在nginx 上 出现404错误,解决办法(1.80nginx 配置 pathInfo)
    源码编译安装lnmp环境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了无数坑,重装了十几次服务器才会的,不容易啊!
    Mysql错误处理: /usr/bin/mysqld_safe: line xxx: xxxx Killed ... (mysql自动停止 Plugin FEDERATED is disabled 的完美解决方法)
    Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
    thinkphp5的mkdir() Permission denied问题
    微信小程序 Unexpected end of JSON input/Unexpected token o in JSON at position 1
    服务器 apache配置https,http强制跳转https(搭建http与https共存)
  • 原文地址:https://www.cnblogs.com/liang123/p/6325716.html
Copyright © 2011-2022 走看看