2k/xp下双击快捷方式后,explorer.exe用什么函数打开应用程序

辉歌 2005-07-18 03:30:46
我们将我的文档中某个word文档通过发送到桌面创建一个快捷方式,当鼠标在桌面双击这个快捷方式后,shell是用什么函数打开word.exe这个程序的?CreateProcess?ShellExecute?还是其他的函数?

我现在的目的就是想要截获快捷方式指向的实际文件路径,然后对此路径做些处理。想了很久,可能用HOOK有效,可又不知道该如何入手。

有大哥可以帮帮我吗?
...全文
101 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
辉歌 2005-07-18
谢谢楼上的兄弟。

通过.lnk文件得到文件信息这个网上很多文章了。我现在的要求是双击某个快捷方式后,能早于与该文档类型关联的程序运行前进行处理。
  • 打赏
  • 举报
回复
NetDNASupport 2005-07-18
http://www.microsoft.com/china/technet/community/scriptcenter/resources/hey1208.mspx

http://www.china-askpro.com/msg1/qa83.shtml

http://www.china-askpro.com/msg2/qa54.shtml
  • 打赏
  • 举报
回复
NetDNASupport 2005-07-18
1. 快捷方式 其实是 .lnk 文件, 即使显示了隐藏扩展名 也看不到
2. Explorer.exe 先开始调用 ShellExecute 然后 在 注册表中的 Class Root 中查到 相应的处理程序 看是否用 DDE 或者调用 Shell Extension ,
3. 最终会调用 CreateProcess 创建 那个可执行文件的进程,传递 快捷方式指向 文件路径 的参数。



请参考 这篇文章 可以获得 .lnk 文件中的信息,包括 文件路径
  • 打赏
  • 举报
回复
辉歌 2005-07-18
目的就是想在word.exe启动前先得到快捷方式所指向的实际的文件路径。

想象如下场景:
当插入U盘后,动态新增一个盘符Z,从Z盘中创建一个快捷方式到桌面上。卸载U盘。

此时桌面上的快捷方式实际指向的文档已经指向了一个不存在的盘符。这时候双击该快捷方式,会弹出对话框,提示找不到磁盘路径。

我的目的就是在弹出对话框之前,做些处理,比如提示用户插入U盘,比如其他的之类。
  • 打赏
  • 举报
回复
相关推荐
发帖
硬件/系统

2614

社区成员

VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
帖子事件
创建了帖子
2005-07-18 03:30
社区公告
暂无公告