系统范围的 ShellExecute 挂钩?

发布于 2024-08-20 16:35:02 字数 253 浏览 7 评论 0原文

有什么方法可以使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天荒地未老 2024-08-27 16:35:02

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文