有什么方法可以使用 C++ 安装系统范围的 ShellExecute 挂钩,而无需将挂钩模块注入每个活动进程。我使用的是 Windows 7。我这样做的目的是因为,我希望能够在使用 ShellExecute 使用默认浏览器打开链接时选择在哪个浏览器中打开链接,如下所示:
ShellExecute(NULL, "open", "http://stackoverflow.com", NULL, NULL, SW_SHOWNORMAL);
有什么方法可以使用 C++ 安装系统范围的 ShellExecute 挂钩,而无需将挂钩模块注入每个活动进程。我使用的是 Windows 7。我这样做的目的是因为,我希望能够在使用 ShellExecute 使用默认浏览器打开链接时选择在哪个浏览器中打开链接,如下所示:
ShellExecute(NULL, "open", "http://stackoverflow.com", NULL, NULL, SW_SHOWNORMAL);
的最后一个参数SetWindowsHookEx
采用线程 id ——如果这是 NULL,则该过程将与与调用线程相同的桌面中的所有线程相关联,否则将与特定线程相关联。
阅读更多:使用 Hooks