资源管理器用于打开文件的内容是什么?

时间:2009-11-24 17:21:19

标签: c winapi shell explorer

我试图在打开文件时双击任何资源管理器调用(双击,打开上下文菜单等),但我无法确定是哪个函数。

最初,我认为它是ShellExecute,因为我可以告诉它做同样的事情,但是在进入它之后我才知道它只在打开一个新的资源管理器窗口时使用。

任何有用的想法我应该挂钩?

4 个答案:

答案 0 :(得分:0)

如果要拦截这些内容,只需将自己注册为shell项的默认动词即可。以下是一些samples

如果您只是想知道某人是否更改了您感兴趣的某些文件,则应通过FindFirstChangeNotification()和相关API注册更改通知。

答案 1 :(得分:0)

ShellExecute个钩子,但是现在(在XP之后)被弃用了,因为每个人都将它们用于最奇怪的目的。请查看this以获取更多详细信息,并在this查看某些文档。

答案 2 :(得分:0)

听起来AppInit_DLLs注册表项应该足够好。

创建一个简单的DLL并调用DllMain函数中的GetCommandLine()以获取正在执行的应用程序的完整命令行。

答案 3 :(得分:-1)

比编写设备驱动程序简单得多(但更不用说有趣)是MS研究工具detours。玩得开心!