将桌面快捷方式部署到运行Windows CE 4.2(VS2005)的设备
我有一个使用VS2005编写的应用程序,它以C. Compact Framework 2.0 SP2为目标。作为解决方案的一部分,我有CAB部署项目,该项目可以毫无问题地部署到设备上。我无法做的是在设备桌面上为我的应用程序创建快捷方式。
我已经花了几个小时阅读各种文档(为什么在MSDN站点上的搜索如此糟糕?),却按照说明进行操作,但并不高兴。
我所做的是:
- 将" Windows文件夹"节点添加到文件系统
- 在名为" Desktop"的文件夹下创建一个文件夹
- 创建了"应用程序主输出"的快捷方式,并将其放置在"桌面"文件夹中
我想念什么?
解决方案
我假设我们正在使用"智能设备CAB项目"?我认为该项目无法以正确的方式为Windows CE 4.2创建快捷方式。我认为我们可以从Microsoft下载一个SDK,安装后将显示" Windows CE CAB Project"之类的项目选项。
不过,我认为我们可以手动执行此操作。 Windows CE快捷方式是带有* .lnk扩展名的文件,因此,如果要使用标记为"我的应用程序"的快捷方式,请在PC上创建一个名为" My Application.lnk"的文本文件。该文件的内容应为:
46#\Program Files\My Application\MyApplication.exe (the # should be the full path length)
或者应用程序在Windows CE设备上具有的完整路径。
在CAB项目中,继续添加" Windows"文件夹,然后再添加"桌面"文件夹。在"桌面"文件夹中,右键单击并添加我们创建的LNK文件。我们可能需要对设备进行软重置,以便在安装后显示快捷方式。
Windows CE快捷方式(任何版本或者版本的CE,包括WinMo)都使用基于ASCII文本的文件。它们的形式为:
{XX}#{PATH}
在哪里:
- XX =路径中的字符数,包括#号
- PATH =要运行的文件的标准路径
例如:
20#\ Windows \ calc.exe
另一个选项是使用用于生成CAB的INF文件的CEShortcuts部分。
在INF的[DefaultInstall]部分中,将CEShortcuts设置为我们选择的部分名称(类似于" Shortcuts"),然后将该部分与快捷方式描述符一起添加。 MSDN在这里详细说明。
MSDN也有一篇关于创建部署项目以生成出租车的文章(可在此处获得),但老实说,项目功能是有限的,而IMO工具通常很烂。直到今天,我们仍然通过手写INF文件使用对CABWIZ的直接调用(这也很糟糕,但这是我们唯一的选择)。
Mitch:像以前一样创建LNK文件,但给它起一个类似" shortcut.lnkx"的名称(注意最后是" x")。然后,可以将其添加到CAB项目中的"桌面"文件夹中。添加文件后,将TargetName属性更改为" shortcut.lnk"并进行编译。我认为这会起作用。
假设我们使用Windows Mobile(5.0或者6.x),则可以使用该语法将文件创建为shourtcut(*,lnk):
SHORTCUT = XX#"\Program Path..."?\Icon File Path...,-Icon Number
在哪里:
XX =要处理的程序路径之后的参数中包含的字符数。
程序路径=目标exe文件位置。
图标文件路径=如果exe文件不包含图标图像,或者我们要使用其他图标图像,则这是包含图标图像的文件的位置。
图标编号=文件中图标图像的索引,从0开始。
Ex: 86#"\Storage Card\Logical Sky CEdit\cedit.exe"?\Storage Card\Logical Sky CEdit\cedit.exe,-101
我已经对其进行了测试,并且工作正常。
最简单的方法是进入Cab Project(设置)中的Application文件夹,右键单击EXE程序(我们要为其创建快捷方式的Application exe),然后选择" Create Shortcut to"(创建快捷方式到)并将该文件移动到我们想要的任何文件夹中例如"开始菜单文件夹"
有点晚了,但是也许这会对像我这样搜索此问题的人有所帮助,我解决了这样的问题:
我在根节点(本地计算机上的文件系统)上添加了一个自定义文件夹,并将其命名为%CE3%。
这是\ Windows \ Desktop的快捷方式。
我添加了快捷方式(右键单击创建新快捷方式)并为其命名。
就是这样,然后我构建!
分析生成的inf中的"快捷方式"部分时,它看起来不错。
[Shortcuts] "ShortCutName",0,"MyApp.exe","%CE3%"
当我部署它时,它运行完美!
我正在使用VS2008并将其部署在Windows CE 5.0上
这是快捷方式的列表:Windows CE快捷方式