日期:2014-05-17  浏览次数:20823 次

关于ShellExecuteEx,急~~~
\Device\HarddiskVolume5 是一个文件系统的一个卷
--------------------------------------------
存在symbolicLink
KMD         \Device\HarddiskVolume5
--------------------------------------------
.kf文件类型的关联程序是A.exe
--------------------------------------------

(win7_x64下测试)
把路径 \\.\KMD\test.kf 传给ShellExecuteEx
结果A.exe 接收到的路径变成 \KMD\test.kf
--------------------------------------------


问:
传什么路径给ShellExecuteEx 才可以让A.exe访问
文件\Device\HarddiskVolume5\test.kf ?


------解决方案--------------------
最好是绝对路径。

类似C:\\Program File\\Device\\HarddiskVolume5\\test.kf 

注意转意符


------解决方案--------------------
引用:
最好是绝对路径。

类似C:\\Program File\\Device\\HarddiskVolume5\\test.kf 

注意转意符


谢谢你,
不过 \Device\HarddiskVolume5 是一个设备, 而且没有为他创建盘符.
------解决方案--------------------
shellexecute 你只能指定一个符合WIN32规范的路径,像你这种NT空间路径应该无法转换的
------解决方案--------------------
引用:
shellexecute 你只能指定一个符合WIN32规范的路径,像你这种NT空间路径应该无法转换的


谢谢你的回答,
不过 我用 \\.\KMD\test.kf 传给ShellExecuteEx, 
ShellExecuteEx内部有检测文件是否存在 然后再调用A.exe
这么说 \\.\KMD\test.kf 有效.

可是在A.exe收到的路径却是\KMD\test.kf
也是说ShellExecuteEx把\\.\KMD\test.kf修改成\KMD\test.kf
从而导致A.exe无法打开文件test.kf