当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]1.WINCE快捷方式结构WINCE的快捷方式和WIN2K,XP的不同,只是一个后缀名为.LNK的文本文件.其格式如下:数字#路径比如,有个快捷方式写法如下:23#WindowsToolViewer.exe指的是指

1.WINCE快捷方式结构

WINCE的快捷方式和WIN2K,XP的不同,只是一个后缀名为.LNK的文本文件.

其格式如下:

数字#路径

比如,有个快捷方式写法如下:

23#WindowsToolViewer.exe

指的是指向WINDOWS文件夹下的Toolviewer.exe可执行文件.数字究竟代表的是什么意思,我也不太清楚;有一说法是#后的ACSII字符 的数量,但如果把上述例子改为1#WindowsToolViewer.exe也可正常运行,但去掉数字则系统无法识别.虽然可以正常使用,但建议还 是按照文档#之后的ACSII字符数量填写.

2.如何把快捷方式加到内核中

假设我们有一快捷方式EnglishExp.lnk,要将其加到内核中.

在PB环境中打开工程,在project.bib文件的FILES字段中添加:

EnglishExp.lnk $(_WINCEROOT)PLATFORMMyAPPCEnglishExp.lnk NK H

其中 $(_WINCEROOT)指的是PC机子上PB安装的根目录,H指的是文件属性,意义代表如下:

S:系统

H:隐藏

R:压缩的资源文件

C:压缩文件

U:非压缩文件

3.如何把快捷方式放到桌面

语法如下:Directory(”欲拷贝至的文件夹”):-File(”更改的名称”,”要拷贝的文件”)

假设我们有一快捷方式EnglishExp.lnk,要将其放到桌面,并把快捷方式的名称改为”英语”

在PB的project.dat文件加入此句:

Directory(”WindowsLOC_DESKTOP_DIR”):-File(”英语.lnk”,”WindowsCEnglishExp.lnk”)

包含在内核里面的文件全部释放到”Windows”文件夹下.

LOC_DESKTOP_DIR指的是本地桌面.在PB中,常用的还有如下宏定义:

LOC_DESKTOP_DIR: 桌面

LOC_MYDOCUMENTS_DIR: My Documents

LOC_PROGRAMFILES_DIR: Program Files

LOC_FAVORITES_DIR: Favorites

LOC_RECENT_DIR: Recent

LOC_MYDOCUMENTS_DIR: My Documents

LOC_HELP_DIR: Help

更多的定义可以在ceshellfe.str文件中找到

4.消除快捷方式的小箭头

在PC机的操作系统中可以通过修改注册表来取消快捷方式左下角的小箭头,但在WINCE中注册表没有关于取消小箭头的键值(可能我没找到^_^).在这里我采用的是直接修改资源文件的做法.

打开shcore.res文件,其中文的路径在 $(_WINCEROOT)PUBLICCOMMONOAKLIBARMV4IRETAIL804,然后将1205的ICO的小箭头删 掉即可.注意,不是删除ID为1205的ICO图标,是删除ICO图标中的内容.

5.微软应用程序的快捷方式

如果在PB中添加了微软的应用软件,便会在桌面和程序中添加其快捷方式;如果觉得快捷方式碍眼,可以将其注释掉再编译即可.

现在列出一些dat文件中定义的微软应用软件的快捷方式:

wceappsfe.dat (C:WINCE420PUBLICWCEAPPSFEOAKFILES),内含:pmail,wordpad

wceshellfe.dat (C:WINCE420PUBLICWCESHELLFEOAKFILES),内含:iexplore,帮助文档在”help”文件夹的快捷方式

viewers.dat (C:WINCE420PUBLICVIEWERSOAKFILES), 内含:pdfviewer,imageviewer,Presviewer,Docviewer

directx.dat (C:WINCE420PUBLICDIRECTXOAKFILES),内含:Media Player,DVD Player

6. 修改默认shell

其实让一个程序在wince里启动和windows里差不多,直接设置其为启动项,这个有几个方法。一个就是制作一个快捷方式,指向我们的应用程序如app.exe,然后将快捷方式放到windowsstartup下面。

步骤如下:(假设app.exe已经拷贝到windows下面)

在pb中创建一个文件,文件类型选txt,然后命名为.lnk后缀,假设名字为test.lnk

编辑其内容为: 16#windowsapp.exe

备注:前面的16是# 后面所有字符的总和,包括空格。Wince的帮助文档上说这么定义就行,但是我尝试后,最后down到目标机上面时提示找不到文件,在wince里查看这 么创建的test.lnk的属性,发现其指向windowsapp.exe后面还有两个方框,因此不对,我的解决方法是修改test.lnk的内容为 16#”Windowsapp.exe”

编辑好lnk文件内容后在pb中修改project.bib

在files段后面添加下面一行:(和添加别的文件到image中类似,也要在pb的flatform菜单的setting下添加build语句,同上,不再赘述)

test.lnk $(_FLATRELEASEDIR)test.lnk NK S

project.dat

增加下面一行:

Directory(”Windowsstartup”):-File(”test.lnk”,”Windowstest.lnk”)

这样后系统启动后就会自动启动我们的程序了

另外一种方法是编辑注册表:在project.reg中添加如下内容

[HKEY_LOCAL_MACHINEinit]

“Launch80″=”app.exe”

“Depend80″=hex:14,00,1e,00

这个是设定启动顺序,launch后面的数字越大的越是后启动,Depend80后面的指定依赖项,为16进制,上面的语句表明依赖项为launch20 定义的device.exe和launch30中定义的gwes.exe, 注意Launch后面的数字范围为0到99 ,此范围之外的将不会有效果。

这样两种方法的效果都是系统都是系统先启动资源管理器explorer.exe(就是看到的默认桌面),然后启动我们的程序,(如果利用 taskman shell然后去掉任务栏那么效果更好)但是这样还不够,我们如何不显示桌面,直接显示我们的程序呢?

网上有人介绍的方法是去掉standard shell,但是我编译总是报错。我采用的方法是替换注册表中lauch50中的explorer.exe为我的app.exe,即搞定。

修改注册表的方法:先把带KITL的系统跑起来,在PB的TOOLS->Remote registry editor里修改,验证有效后,再去修改platfrom.reg, 或者自己写个REG文件,然后在platform.reg里INCLUDE进来 SYSGEN后确认PBWORKSPACE里相关项目的REL目录里reginit.ini文件里包含了自己做的修改后make image然后DOWNLOAD下去就OK了。

值得补充的是,我们前面介绍的步骤中那个修改平台setting,添加语句的,是因为我每次都是重新sysgen和build,如果只是简单的 make image的话(都是pb中的build OS菜单下的命令),那么将直接用release中的内容,因此也可以直接将文件放到release文件夹,然后改project.bib等实现往 image中添加文件。 同样,也可以直接修改release中的shell.reg中的launch50值为我们自己的程序(或者类似修改reginit.ini文件, reginit.ini文件存放有所有wince的静态注册表,来达到去掉桌面,直接启动我们程序的效果)。[!--empirenews.page--]

注意,这么启动的程序,如果点击关闭,就会死机的,因为没有窗口运行了。实际运用中,当然不会让用户关闭我们的程序,除非他一起关闭系统。

如果也需要build的话,可以通过往image中添加文件的方法将我们改好的shell.reg添加到release目录。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

深圳2025年9月11日 /美通社/ -- 近日,德国柏林国际电子消费品展览会(简称IFA)期间,国际公认的测试、检验和认证机构SGS为极壳(Hypershell) 全球首款户外动力外骨骼产品Hypershell X 系...

关键字: SHELL RS AI SI

Quali的CloudShell为打造电信未来的开发人员提供全新的一键式即时访问基础设施能力 德...

关键字: 电信基础 IP SHELL

(全球TMT2021年12月9日讯)“环境即服务”基础设施自动化解决方案提供商Quali宣布加入电信基础设施项目(TIP)。该项目致力于开发、测试和部署开放式、离散式及基于标准的解决方案,在全球范围内提供高质量互连服务...

关键字: 电信基础 IP SHELL

摘 要:启动装载程序是嵌入式系统的重要组成部分。文章结合在ARM平台上广泛使用的U-Boot,详细讨论了Boot Loader开发中用到的主要技术,分析引导程序的执行流程,提出了WinCE和Linux在ARM平台下...

关键字: 启动装载程序 U-Boot 嵌入式系统 WinCE Linux

摘 要:火车货运在高速发展的同时,也带来了越来越多的不安全因素,货运物资被盗是铁路货运事故的主要原因之一。 基于此,设计和实现了基于ZigBee和WinCE技术的火车货运防盗预警系统,用于解决站停、待编、待卸和运行途中...

关键字: 火车货运 智能防盗 Zigbee WinCE PDA软件

电源大家都知道,为我们的社会的发展,贡献了很大的能量,现有的所有的电子产品都离不开电源,那么你知道电源管理吗?伴随着移动嵌入式产品的普及,电源管理已经成为重要技术指标和产品的有机组成。典型移动嵌入式设备对能耗越来越敏感,...

关键字: 电源管理 WinCE 有机组成

  车载操作系统(AutomoTIve OperaTIng System,简称AOS)是管理和控制车载硬件与车载软件资源的程序系统,是直接运行在AB上的最基本的系统软件,任何上层软件,HMI,数

关键字: iOS Linux WinCE

GNOME 是一个完全由自由软件组成的桌面环境 , 可以运行在包括 GNU/Linux、Solaris、大多数 BSD 系统上,由志愿者组成的 GNOME Project 开发,是 GNU 工程的一部

关键字: Linux SHELL 启动器 OVERVIEW

2020年将成为区块链游戏的丰收年。无论是在推出新的更适用于游戏的区块链方面,还是新的区块链游戏,以及新的区块链游戏服务方面。而BORA试图成为涵盖以上所有项目的平台。 BORA总部位于

关键字: 区块链 APP SHELL RADAR

2020年将成为区块链游戏的丰收年。无论是在推出新的更适用于游戏的区块链方面,还是新的区块链游戏,以及新的区块链游戏服务方面。而BORA试图成为涵盖以上所有项目的平台。 BORA总部位于

关键字: 区块链 APP SHELL RADAR
关闭