现在的位置: 首页 > 综合 > 正文

创建自己的桌面快捷方式—Wince5.0

2013年02月11日 ⁄ 综合 ⁄ 共 2326字 ⁄ 字号 评论关闭

      这几天在弄快捷方式,在网站上查了一些资料,但发现几乎都是一模一样的,但还是提供了不少的帮助。如下是一个相关的链接:

      http://blog.21ic.com/user1/5047/archives/2010/70141.html

 

      按照上述介绍的方法,在实际的操作中发现,虽然快捷方式创建成功了,但就是不能执行相应的程序,甚是郁闷~~~

      接下来就是找为什么不能执行相应的程序???

      最直接准确的方法就是看MS自带的组件是如何做到的,在C:/WINCE500/PUBLIC/VIEWERS/OAK/FILES路径下打开viewers.bib文件,发现所有的.exe文件全部放在MODULES下,而.lnk文件则放置在FILES下。难道是自己把文件位置放置错误造成的??按照MS的操作规则对自己之前的文件放置位置进行相应的修改,将Test.exe      $(_FLATRELEASEDIR)/Test.exe      NK   SH 放置在MODULES下,将Test.lnk      $(_FLATRELEASEDIR)/Test.lnk 放置在FILES下,再次Make image发现还是不行,把人搞的更郁闷了。于是继续研究MS的东西,经过几番反复的实验,终于ok了。

        现在把自己的具体步骤描述一下:

        1. 先在C:/WINCE500/PBWorkspaces/QT2440/RelDir/smdk2440a_ARMV4I_Release路径下新建一个.txt文件,并在其中添加如下内容:17#"/Windows/Test.exe"  (注意:此处#后的字符串必须用""包含起来), 然后保存并将文件名改为Test.lnk

 

        2. 在同样的路径下,打开platform.bib文件,在MODULES下添加

           Test.exe      $(_FLATRELEASEDIR)/Test.exe      NK   C

           在FILES下添加        Test.lnk      $(_FLATRELEASEDIR)/Test.lnk    NK    SH

注意此处的文件属性:

S:表示系统文件
H:表示隐藏文件
R:压缩的资源文件
C:表示压缩此文件
U:表示不压缩此文件

M:表示对此文件禁止按需调页

N:表示此文件不受信任

D:表示不能对此文件进行调试

 

       3. 在同样的路径下,打开platform.dat文件,在其中添加

Directory("/Windows/LOC_DESKTOP_DIR"):-File("Test.lnk", "/Windows/Test.lnk")
Directory("/Windows/LOC_PROGRAMS_DIR"):-File("Test.lnk", "/Windows/Test.lnk")

 

       4. 将Test.exe文件copy到相同的路径下

 

       5. 重新执行Make  Run-Time Image命令,即OK

针对以上文件属性的问题,借用何宗健老师的话补充如下: Wince5.0一般对FILES中的文件进行压缩,而不压缩MODULES中的文件。因此通常把WAV, BMP等数据文件放在FILES中,而把EXE, DLL等代码文件放在MODULES中,这样没有经过压缩的代码就可本地执行。如果把DLL发在MODULES中,那么它只会被加载到Slot 1中;如果把DLL发在FILES中,那么它会被映射到所有Slot的虚拟内存中,这将大大消耗进程的虚拟内存空间。

 

      至此,快捷方式已创建OK,但还有个疑问:   此种方法只能为已存在于Windows下的文件创建快捷方式,也就是说要创建快捷方式的文件必须打包进内核,这样一来就无形中增加了内核的大小和不稳定系数,个人有尝试过载在Test.lnk中将快捷方式的路径定义为/NandFlash/New/Test.exe,虽然编译没什么问题,但不能达到预期的效果。待续~~~~~~~~~~~~~~~~

 

       然后又针对上述疑问进行了相关的尝试,终于完成了这个任务,现将相关的步骤说明如下:

       1. 在Test.lnk中更改相关的路径定义,个人的定义如下:23#"/NandFlash/New/Test.exe"

 

       2. 在platform.bib文件中的在FILES下添加        Test.lnk      $(_FLATRELEASEDIR)/Test.lnk    NK    SH

 

       3. 在platform.dat文件中添加    

Directory("/NandFlash"):-Directory("New")
Directory("/NandFlash/New"):-File("Test.lnk", "/Windows/Test.lnk")

Directory("/Windows/LOC_DESKTOP_DIR"):-File("Camera.lnk", "/NandFlash/New/Test.lnk")
Directory("/Windows/LOC_PROGRAMS_DIR"):-File("Camera.lnk", "/NandFlash/New/Test.lnk")

 

       4. 重新make image即可

  

至此就可以不用将相关的应用程序打包进内核,同样可以实现创建快捷方式的目的,也有效的降低了内核的大小和不稳定系数

 

这两天的努力总算没有白费啊,也算是对自己的一点鼓励吧,真是高兴啊,哈哈哈~~~~~~~~~~~

     

抱歉!评论已关闭.