我试图挂钩打开文件时(双击、打开上下文菜单等)时调用的任何资源管理器,但是我不知道是哪个函数。
最初,我认为它是 ShellExecute,据我所知,它的作用相同,但在连接到它之后,我了解到它仅在打开新的资源管理器窗口时使用。
任何想法我应该挂钩哪个功能?
如果你想拦截这些东西,只需将自己注册为 shell 项的默认动词即可。这里有一些样本。
如果您只是想知道是否有人更改了您感兴趣的某些文件,您应该通过FindFirstChangeNotification()和相关 API 注册更改通知。
听起来AppInit_DLLs
注册表项应该足够好。
制作一个简单的 DLL 并GetCommandLine()
在 DllMain 函数中调用以获取正在执行的应用程序的完整命令行。
比编写设备驱动程序简单得多(但没那么有趣)是 MS 研究工具detours。玩得开心!