我用以下办法获取到WebBrowser2指针,可是在多个当中,不知道哪个是当前用户正在操作的,请问有什么办法?
CComPtr< IShellWindows > spShellWin;
HRESULT hr = spShellWin.CoCreateInstance( CLSID_ShellWindows );
if ( FAILED( hr ) ) return;
long nCount=0;
spShellWin->get_Count(&nCount);
for(long i=0; i {
CComPtr spDisp;
hr=spShellWin->Item(CComVariant( i ), &spDisp );
if ( FAILED( hr ) ) continue;
CComQIPtr< IWebBrowser2 > spBrowser = spDisp;
if ( !spBrowser ) continue;
}
第1个回答 2014-08-15
首先你的程序和IE是不同的进程,即便获取了指针,在你的进程中也是无效的。所以,如果要实现你的需求,那么就首先需要进程植入,然后再进行获取操作。
估计可以通过获取相关的窗口,然后来获取指针。这个我没有尝试过,只是提一个思路了。希望能对你有帮助。追问
估计可以通过获取相关的窗口,然后来获取指针。这个我没有尝试过,只是提一个思路了。希望能对你有帮助。追问
指针是有效的
第2个回答 2014-10-14
HWND hIE = FindWindow(_T("IEFrame"), NULL);
WCHAR str[256];
::GetWindowText(hIE, str, 256);
这个方法就能找到
WCHAR str[256];
::GetWindowText(hIE, str, 256);
这个方法就能找到