当前位置:首页 > 编程开发

WinCE下自定义Shell的方法

webgou16年前 (2010-08-13)编程开发239

考虑到产品外观及风格的一致性,无法直接把Explorer作为Shell,而且,又无简单的把Explorer直接放到后台(会出现一些问题,譬如启动的瞬间,Explorer会显示一下)
方法:
1. 直接修改Explorer,改为自己的风格。个人认为这是最根本最有效的方法,但是工作量比较大,考虑到时间只能放弃。
2. 直接用自己的Shell替代Explorer。在Shell.reg中有一句
[HKEY_LOCAL_MACHINE\init]
"Launch50"="explorer.exe"
"Depend50"=hex:14,00, 1e,00
就是这一句在启动的最后把Explorer启动起来。(Launchxx的含义及用法在PB的帮助里面有解释)。
把explorer.exe替换自己的shell即可(譬如MyShell.exe),以前一直使用这种方法。
但 这种方法有缺陷:wince的Common Dialog是依赖于Explorer的,这就导致很多Wince自带的程序执行时有问题,譬如WordPad无法打开和保存。。。(如果哪位知道如何在 不启动Explorer的情况下使用Common Dialog的话,还烦请告诉小弟)
3. 现在是对Explorer稍作修改确保显示没有问题,然后放在后台,步骤如下:
3.1. 按照PB Help的提示修改Explorer(如果通过修改注册表实现,则尽量不修改Explorer代码)
a. 复制WINCE500\PUBLIC\SHELL\OAK\HPC,到WINCE500\PUBLIC\SHELL\OAK目录下,并重命名为MyShell unigps.cn
b. 修改dir文件
c. 去掉桌面上显示的"Microsoft Windows CE...........":
直接把desktopview.cpp中#ifndef SHIP_BUILD改为#if 0即可。
(理论上在Platform Setting里面可以设置此段文字不显示的,但是不知为何不起作用)
d. 修改Taskbar自动隐藏时的高度:
taskbar.hxx中,把TASKBAR_HEIGHT_AUTOHIDE改为0
e. 去掉Explorer启动时的音乐:
把WinMain中的sndPlaySound(c_szSystemStart, SND_ALIAS|SND_ASYNC|SND_NODEFAULT);注释掉。
(注册表中,没有找到开机音乐的键值。如果哪位知道,请不吝赐教)
3.2. 修改注册表
a. Shell.reg: 桌面上去掉"My Device"和"Recycle Bin"两个图标
找到
[HKEY_LOCAL_MACHINE\Explorer\Desktop]
"{000214A0-0000-0000-C000-000000000046}"="My Device"
"{000214A1-0000-0000-C000-000000000046}"="Recycle Bin"
改为
[HKEY_LOCAL_MACHINE\Explorer\Desktop]
;"{000214A0-0000-0000-C000-000000000046}"="My Device"
;"{000214A1-0000-0000-C000-000000000046}"="Recycle Bin"
b. 去掉桌面上的其它快捷方式
wince用Directory("\Windows\LOC_DESKTOP_DIR"):-File("LOC_MSPWORD_LNK","\Windows\wordpad.lnk")的方式在桌面上建立快捷方式
把WINCE500\PUBLIC\WCEAPPSFE\OAK\FILES\wceappsfe.dat中的所有Directory("\Windows\LOC_DESKTOP_DIR"):-File(...)全部注释掉。
把WINCE500\PUBLIC\WCESHELLFE\OAK\FILES\wceshellfe.dat中的所有Directory("\Windows\LOC_DESKTOP_DIR"):-File(...)全部注释掉。
c. 设置Taskbar为自动隐藏
在注册表中添加
; -- 使任务栏缺省自动隐藏
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\AutoHide]
@="1"

; -- 使任务栏缺省不总在最前
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\OnTop]
""=dword:0
d. 修改桌面背景颜色
[HKEY_LOCAL_MACHINE\SYSTEM\GWE]
"SysColor"=hex:\
00,00,00,00,\
00,00,00,00,\ //Desktop窗口背景颜色,现在设置为黑色
00,00,00,00,\
00,00,00,00,\
EF,EB,DE,00,\
FF,FF,FF,00,\
00,00,00,00,\

www.unigps.cn


00,00,00,00,\
00,00,00,00,\
FF,FF,FF,00,\
C0,C0,C0,00,\
C0,C0,C0,00,\
80,80,80,00,\
31,69,C6,00,\
FF,FF,FF,00,\
EF,EB,DE,00,\
AD,AA,9C,00,\
80,80,80,00,\
00,00,00,00,\
00,00,00,00,\
FF,FF,FF,00,\
73,6D,63,00,\
FF,FF,FF,00,\
00,00,00,00,\
FF,FF,E1,00,\
EF,EB,DE,00,\
00,00,00,00
e. 背景图片
[HKEY_CURRENT_USER\ControlPanel\Desktop]
"wallpaper"="\\NandDisk\\Startup\\wallpaper.bmp"
f. 启动自己的Shell
[HKEY_LOCAL_MACHINE\init]
"Launch70"="\\Windows\\ShellLoader.exe"
"Depend70"=hex:14,00, 1e,00

效果:系统启动后,先启动explorer显示wallpaper.bmp,然后启动ShellLoader.exe

 

来源:http://blog.chinaunix.net/u2/63726/showart_1279963.html

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=270

标签: wince
分享给朋友:

“WinCE下自定义Shell的方法” 的相关文章

使用Socket通道读取web页面

import java.io.IOException;import java.net.InetSocketAddress;import java.net.UnknownHostException;import java.nio.ByteBuffer;...…

AppStore 内购验证的方法

AppStore 内购验证的方法…

从聊天到交付:我是如何使用 Codex 完成真实工作的

Codex 的价值不只是生成代码或回答问题,而是进入真实工作现场,阅读项目、调用工具、修改文件、验证结果并交付成果。本文结合实际使用过程与社区工作流,介绍如何把 Codex 当作一位可以协作、可以复核、也需要明确边界的数字同事。…

The Basics of Protocols and Delegates

Apple offers a good overview of working with protocols in their Objective-C Programming Reference. However, sometimes a simple working example can go…

创建纯资源 DLL

创建纯资源DLL: 1。首选是动态DLL 2。把需要的资源导入进项目 3。在编译要/NOENTRY 这个选项,Properties-˃configure Properties-˃linker-˃No entery point...…

Android图片大小调整动态实现方法

Android操作系统中对于图片的操作我们在以前的文章中也有所介绍。不过对于图片的大小调整往往都局限于固定的调整。如何才能满足动态大小调整呢?我们在这里就为大家详细介绍有关Android图片大小调整的动态实现方法。昨天,动态获取图片资源获取的很爽啊,后来,换了一张png,128*128的,Run a…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。