如题,如何在IE插件在页面上显示出来时获取插件的信息?如插件名和安装路径就是页面完全显示出来后,在页面的上边,插件已经显示出来,询问用户要不要加载时,如何获取插件的信息?
我想在BHO里面动态获取插件的信息,
想知道在IE事件,Document事件,或是HTMLElements事件的那个具体事件里获取插件的信息?
如何获取?
大家帮帮忙
我想在BHO里面动态获取插件的信息,
想知道在IE事件,Document事件,或是HTMLElements事件的那个具体事件里获取插件的信息?
如何获取?
大家帮帮忙
只是在页面上显示出来一个提示条,询问要不要加载?
这个应该可以获取信息吧
然后注册WM_HTML_GETOBJECT消息:
UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT"));
有段代码可供参考:
IHTMLDocument2* GetDocInterface(HWND hWnd)
{
// 我们需要显示地装载OLEACC.DLL,这样我们才知道有没有安装MSAA,通过MSAA来得到加载了什么ACTIVEX控件。
CoInitialize(NULL);
HINSTANCE hInst = ::LoadLibrary(_T("OLEACC.DLL"));
IHTMLDocument2* pDoc2=NULL;
if ( hInst != NULL )
{
if ( hWnd != NULL )
{
CComPtr <IHTMLDocument> spDoc=NULL;
LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT"));
::SendMessageTimeout(hWnd,nMsg,0L,0L,SMTO_ABORTIFHUNG,1000,(DWORD*)&lRes); LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress(hInst,_T("ObjectFromLresult"));
if ( pfObjectFromLresult != NULL )
{
HRESULT hr;
hr=pfObjectFromLresult(lRes,IID_IHTMLDocument,0,(void**)&spDoc);
if (SUCCEEDED(hr))
{
CComPtr <IDispatch> spDisp;
CComQIPtr <IHTMLWindow2> spWin;
spDoc->get_Script( &spDisp );
spWin = spDisp;
spWin->get_document( &pDoc2 );
}
}
}
::FreeLibrary(hInst);
}
else{//如果没有安装MSAA
MessageBox(NULL,"请您安装Microsoft Active Accessibility","提示",NULL);
//MessageBox(_T("请您安装Microsoft Active Accessibility"));
}
CoUninitialize();
return pDoc2;
}