请教一个快捷方式和文件关联的问题

nuaajiang   2008-11-28 15:46 楼主
文件的快捷方式,我知道要配置bib,要配置dat文件,但我有个疑问,lnk文件的一开始那个号是什么意思?有什么讲究嘛?
例如,我有个exe文件叫做test.exe,我想作个lnk,我这样编辑lnk:10#\windows\test.exe,这个前面的10有没有什么讲究?

第二个问题,是程序关联的问题,比方说我有个程序,比方说test.exe,能播放mp3,mpg4等等,我想这些文件默认就让我的test打开,我该怎么弄?应该是修改注册表把?但不知道在什么地方改,如何改啊。

谢谢

回复评论 (12)

据说10# 是后面字符串("\windows\test.exe")的长度;
不知道CE上的文件关联于WINDOWS是否是一样的?
点赞  2008-11-28 16:57
引用: 引用 1 楼 okvictor_20082003 的回复:
据说10# 是后面字符串("\windows\test.exe")的长度;
不知道CE上的文件关联于WINDOWS是否是一样的?


windows是怎么关联的啊?
点赞  2008-11-28 19:38
引用: 引用 1 楼 okvictor_20082003 的回复:
据说10# 是后面字符串("\windows\test.exe")的长度;
不知道CE上的文件关联于WINDOWS是否是一样的?


好象长度不对啊。下面是我在release目录下搜索到lnk文件,看不出来有什么关系:
addrbook.lnk:21#:MSCONTACTS?outres.dll,-10000
async.lnk:   18#async.asy
beam.lnk:    18#:MSBEAM
bugtrap.lnk: 30#\windows\bugtrap.exe /columbo
calendar.lnk:21#:MSCALENDAR?outres.dll,-10002
camera.lnk:  40#:MSCAMERA?shellres.dll,-8263
点赞  2008-11-28 19:48
没有人,我自己顶!!!
点赞  2008-11-30 11:25
不知道,学习中。。。
点赞  2008-12-4 11:58
我有一些相关的资料可以共享给你,不过要等我下班有空才能找
点赞  2008-12-4 12:06
引用: 引用 6 楼 hzdysymbol 的回复:
我有一些相关的资料可以共享给你,不过要等我下班有空才能找


贴出来给大家看看看,这个不知哦。
点赞  2008-12-4 12:36
有一说法是#后的ACSII字符的数量,但如果把上述例子改为1#\Windows\ToolViewer.exe也可正常运行,但去掉数字则系统无法识别.虽然可以正常使用,但建议还是按照文档#之后的ACSII字符数量填写.
点赞  2008-12-4 13:02
http://blog.eeworld.net/91program/archive/2008/12/04/3443881.aspx
点赞  2008-12-4 13:05
引用: 引用 8 楼 91program 的回复:
有一说法是#后的ACSII字符的数量,但如果把上述例子改为1#\Windows\ToolViewer.exe也可正常运行,但去掉数字则系统无法识别.虽然可以正常使用,但建议还是按照文档#之后的ACSII字符数量填写.


是后面的命令长度,但不正确也无所谓
http://forum.xda-developers.com/archive/index.php/t-280680.html
Just create a file (with lnk extension)
and write to it:
10#"my_app.exe" -launch

this is what it means:
10 - length of the string after #. This value doesn't have to be accurate because it is usually ignored.
"my_app.exe" - path and name of the target of the shortcut.
-launch - command line parameters (if you have any)
You can also add: ?incon.exe,0 to take an icon from another exe / dll


另外,如果你有WinCE的代码,你可以看到
public\shell\oak\hpc\ceshell\api\shortcut.cpp
SHCreateShortcut-->Shortcut_CreateEx-->Shortcut_Write里有如下代码

  1.    // NOTE: Get the character count of the shortcut string.
  2.    nCount = ::wcslen(wszTemp2);//wszTemp2是命令本身
  3.    if (0 != nCount)
  4.    {
  5.       nCount ++; // For the space between the target and args.
  6.    }
  7.    nCount += ::wcslen(wszTemp1) + 2; //wszTemp1是该命令的参数

  8.    if (FAILED(::StringCchPrintf(wszTemp3,
  9.                      lengthof(wszTemp3),
  10.                      L"%d#"%s"",
  11.                      nCount,
  12.                      wszTemp1)))
  13.    {
  14.       dwErrCode = ERROR_FILENAME_EXCED_RANGE;
  15.       goto leave;
  16.    }
  17. //后面会写wszTemp3到快捷方式文件里
点赞  2008-12-4 19:55
下面这段注册表就是把系统的Audio文件关联到自己的Player.exe上面,而且图标也相应的改变

[HKEY_CLASSES_ROOT\audiofile\shell\open\command]
@="player.exe %1"

[HKEY_CLASSES_ROOT\audiofile\DefaultIcon]
@="player.exe,-1000"

[HKEY_CLASSES_ROOT\audiofile]
@="Audio File"
;"EditFlags"=hex:00,00,01,00

这就是LZ所想要的吗?
点赞  2008-12-5 09:29
引用: 引用 11 楼 hzdysymbol 的回复:
下面这段注册表就是把系统的Audio文件关联到自己的Player.exe上面,而且图标也相应的改变

[HKEY_CLASSES_ROOT\audiofile\shell\open\command]
@="player.exe %1"

[HKEY_CLASSES_ROOT\audiofile\DefaultIcon]
@="player.exe,-1000"

[HKEY_CLASSES_ROOT\audiofile]
@="Audio File"
;"EditFlags"=hex:00,00,01,00

这就是LZ所想要的吗?


太好了,回头试试,非常非常感谢!
点赞  2008-12-5 11:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复