Internet explorer 如何将WH_CALLWNDPROC挂接到IE 11父进程上?

Internet explorer 如何将WH_CALLWNDPROC挂接到IE 11父进程上?,internet-explorer,winapi,bho,Internet Explorer,Winapi,Bho,现在,我正在尝试在IE11上实现一个浏览器辅助对象。 在BHO中,我想钩住WH_CALLWNDPROC来检测地址栏的编辑,但我还没有得到它。当我在BHO SetSite中调用SetWindowsHookEx函数时,BHO dll被注入IE子进程,但不会注入IE父进程。因此,我没有检测到编辑 你知道怎么得到它吗 MyBHO.cpp STDMETHODIMP CHelloWorldBHO::SetSite(IUnknown* pUnkSite) { --- snip --- HWND hw

现在,我正在尝试在IE11上实现一个浏览器辅助对象。 在BHO中,我想钩住WH_CALLWNDPROC来检测地址栏的编辑,但我还没有得到它。当我在BHO SetSite中调用SetWindowsHookEx函数时,BHO dll被注入IE子进程,但不会注入IE父进程。因此,我没有检测到编辑

你知道怎么得到它吗

MyBHO.cpp

STDMETHODIMP CHelloWorldBHO::SetSite(IUnknown* pUnkSite) { --- snip --- HWND hwnd; if (pUnkSite != NULL) { pUnkSite->QueryInterface(IID_IWebBrowser2, (void**)&m_spWebBrowser); if (SUCCEEDED(m_spWebBrowser->get_HWND((LONG_PTR*)&hwnd))) { m_hHook = SetWindowsHookEx(WH_CALLWNDPROC, BHO_AddressEditProcedure, hInstanceDll, GetWindowThreadProcessId(hwnd, NULL)); if (!m_hHook) { --- snip --- } } else { m_spWebBrowser.Release(); } return IObjectWithSiteImpl::SetSite(pUnkSite); } 致以最良好的祝愿,
Kamakuran

UIPI提供了钩住错误DLL所需的基础知识,它将阻止您钩住以更高完整性级别运行的进程。请记住,您的BHO运行在另一个被增强的保护模式功能沙盒化的进程中。这里没有真正的路径,你无法实现这一点。通常,当有人试图监视某些输入控件时,他们对某些事件产生的事件非常感兴趣。在您的特定场景中,您是否真的需要在地址栏更改时得到通知,或者在导航2、导航完成2之前就足够了。监视地址栏听起来很像恶意应用程序所做的。我打赌IE11是故意阻止的。看看这里:你会发现一些关于通过代理进程连接IE主进程的信息。