WinCE 5.0 一些实用的功能(搜集整理)

一、WinCE创建桌面快捷方式
方式一:静态创建桌面快捷方式
此种方式在创建NK.bin,静态创建,不可修改
1、创建一个快捷方式文件hello.lnk,格式如下:
18#/Windows/hello.exe
其中,18表示#后面有多少个字符
2、将此文件拷贝到$BSP/files目录下;
3、在$BSP/files/PLATFORM.BIB中加入如下内容
hello.lnk $(_FLATRELEASEDIR)/hello.lnk NK H
4、在$BSP/files/platform.dat中加入如下内容
Directory("/Windows/LOC_DESKTOP_DIR"):-File("测试hello.lnk","/Windows/hello.lnk")   

;个人使用方法一成功 ,有时候不行的话退一步先实现下面的桌面永久性保存,再拖一个windows下的快捷图标到桌面上就OK的

方式二:动态创建桌面快捷方式
静态创建的快捷方式不能修改,很不方便,因此想到使用动态的创建桌面快捷方式。
思路如下:
开机的时候以后台的方式自动执行一个程序,该程序读一个配置文件(配置文件中指定快捷方式的目标及原路径),解析每项配置,并调用SHCreateShortcut来创
建快捷方式。以后只需要修改配置文件即可。


二、关于wince的永久保存
永久保存到第二种思路
之前提到了ROM-only File System可以将系统根目录设定到ResidentFlash到办法, 从而实现永久保存的目的,这主要是为了方便第三方软件的安装, 安装到windows目录的文件中重启之后不会消失。
实际上不少产品还是RAM and ROM File System的, 那么怎么解决永久保存的问题? 下面是解决办法。
1. 修改ShellFolder. 内核启动时候,filesys.exe会根据initobj.dat来创建一些系统目录和文件, 默认是在根目录,也就是RAM盘中创建Desktop, my document...这些目录。explorer.exe程序会根据注册表配置指定的Shell Folders,默认的指向上面RAM盘下filesys.exe创建的这些目录。因此, 我们可以修改注册表来重定向这些路径,指向flash到目录。 如下是一个示例:
[HKEY_LOCAL_MACHINE\System\Explorer\Shell Folders]
"My Documents"="\\SDMMC\\My Documents"
"Desktop"="\\ResidentFlash\\Desktop"        ;"Desktop"=LOC_PATH_Desktop"     ;  成功试验,桌面可以永久保存了,只是很奇怪,后面那句原话明明注释掉了,删除就是不行
"Application Data"="\\ResidentFlash\\Application Data"
"Favorites"="\\ResidentFlash\\Favorites"
"Programs"="\\ResidentFlash\\Programs"
这样,重启之后, 这些目录下面的内容就不会丢失。
2. windows目录。 这个是最重要的, 因为一些dll必须放在这个目录或者根目录下面。可是每次重启后, 都会丢失。 WinCE又没有环境变量这样的概念。 安装文件cab一般都把文件放到windows目录下面。 如何解决? 其实, LoadLibrary时候会搜索几个路径, 除了上面提到windows和根目录, 还有“当前目录”, 可以拷贝dll到当前目录。 此外, 注册表还提供了一个SystemPath到配置, 很类似环境变量, 在注册表可以指定一个或多个系统路径。查看这篇msdn:http://msdn.microsoft.com/en-us/library/ms886736.aspx
If no file name extension is specified in the lpLibFileName parameter, the default library extension .dll is appended. However, the file name string can include a trailing point character (.) to indicate that the module name has no extension.
A search path to the executable module cannot be specified.
Unless the full path to the module is specified, Windows CE searches the following path for the module:
The absolute path specified by the lpLibFileName parameter
The .exe launch directory
The Windows directory
ROM DLL files
An OEM-specified search path
The following registry subkey specifies a search path to use with LoadLibrary and CreateProcess:
HKEY_LOCAL_MACHINE\Loader SystemPath=multi_sz:\\path1\\ \\path2\\The path is only searched if the path of the file being looked for is not explicitly specified.
The total length of the SystemPath value must not exceed 260 characters. If it does, the path is ignored.
A change to the SystemPath key does not take effect until a Windows CE–based device is reset.
所以,我们可以指定系统路径到ResidentFlash到某个目录。补充:可以使用WinCE cab manager工具来处理, 提取文件,修改安装路径等。 有空试试。
3. 注册表的永久保存。 这个借由hive注册表就可以实现。 hive技术把注册表分成了3个部分, boot 和 其他。 boot部分是不需要修改的用于内核启动的, 其他部分system.hv和user.hv可以放在ResidentFlash里面。注册表可以恢复为出厂状态。filesys.exe在启动过程中会透过OEMIoCtls来询问是否恢复出厂状态。
总结: 使用RAM and ROM File System也可以到达永久保存的目的。 只是dll可能需要手动拷贝转移。 但好处是保持系统“干净”, 稳定。 装错软件比较不害怕。 而注册表也可以恢复为出厂状态。


三、WinCE 5要隐藏原有桌面的我的设备,回收站:

Shell.reg中找到
[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"

core os->windows ce devices->applications - end user->wordpad写字板组件配合手写输入法(本人使用捷通手写输入法),手写输入试验效果较好

修改wince桌面背景图:

  方法一:

  将图片文件拷贝到生成平台目录,如:拷贝 Wallpaper_800×600.bmp 到D:\
WINCE500\PBWorkspaces\SHELL_demo\RelDir\Emulator_x86_Release 下

  Platform Builder 5.0 下点击菜单 “Build OS” -> “Open Release Directory”

  在弹出的 console 中 输入: notepad shell.bib,也就是用记事本打开

  D:\WINCE500\PBWorkspaces\SHELL_demo\RelDir\Emulator_x86_Release 下的

  shell.bib 文件,进行编辑

  编辑下面的代码,把 windowsce_qvgap.bmp 修改成自己添加的图片文件。即把 ; @
CESYSGEN IF SHELL_MODULES_QVGAP

  windowsce.bmp $(_FLATRELEASEDIR)\windowsce_qvgap.bmp NK S

  ; @CESYSGEN ENDIF SHELL_MODULES_QVGAP

  改为: ; @CESYSGEN IF SHELL_MODULES_QVGAP

  windowsce.bmp $(_FLATRELEASEDIR)\Wallpaper_800x600.bmp NK S

  ; @CESYSGEN ENDIF SHELL_MODULES_QVGAP

  保存 shell.bib 文件,回到 pb5,点击菜单

  “Build OS” -> “Make Run-Time Image 即重新生成镜像文件,然后下载到模拟器或设备,就会发现壁纸已经换了      ;喷血推荐,如果只是简单修改注册表等基本信息而不添加或删除组件:但记得在完成之后进入工程中的相应文件,看是否修改成功。此外还推荐使用快速编译,可以参考天嵌的相关手册

(可能会出现状况:直接在项目中修改相应文件如platform.bib而不要在PB中修改,当然你可以尝试在pb中改,make之后你重新进入工程,你会发现工程中其实并没修改)
 
。方法二:

  1.应该修改你的release目录下的wceshellfe.reg文件

  2.将图片拷贝到你的release目录下

  3.修改release目录下的platform.bib文件,把图片文件加入内核(增加这么一句:

  window.bmp $(_FLATRELEASEDIR)\XXXX.bmp NK U               ;本人使用方法二成功

  4.make image 。方法三:

  还有一种可行办法的:

  条件是系统支持注册表保存。

  设定好背景,挂起系统,
以后每次启动都是设置好的背景了。***********************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值