系统范围的 ShellExecute 挂钩?
有什么方法可以使用 C++ 安装系统范围的 ShellExecute 挂钩,而不必将挂钩模块注入每个活动进程。我使用的是 Windows 7。 我这样做的目的是因为,当使用 ShellExecute 使用默认浏览器打开链接时,我希望能够选择在哪个浏览器中打开链接,如下所示:
ShellExecute(NULL, "open", "http://stackoverflow.com", NULL, NULL, SW_SHOWNORMAL);
is there any way I can install a system-wide ShellExecute hook using C++ without having to inject a hooking module into every active process. I am using Windows 7.
My purpose for this is because, I want to be able to select which browser a link is opened in when a link is opened with the default browser using ShellExecute, like this:
ShellExecute(NULL, "open", "http://stackoverflow.com", NULL, NULL, SW_SHOWNORMAL);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SetWindowsHookEx
的最后一个参数 接受一个线程 ID——如果为 NULL,则该过程将与调用线程所在桌面中的所有线程相关联,否则与特定线程相关联。了解更多信息:使用 Hook
The last parameter of
SetWindowsHookEx
takes a thread id -- if this is NULL the procedure will be associated with all threads in the same desktop as the calling thread or with a particular thread otherwise.Read more: Using Hooks