你的方式不对。
正规的打开IE是通过COM,可以直接得到对应的IWebBrowser2接口,对其进行各种操作,甚至可以进而得到IHtmlDocument2来对网页内容进行操作,你通过这种FindWindow进行操作的方式是很不可靠的,尤其是不能兼容不同版本界面的IE。
if (SUCCEEDED(OleInitialize(NULL)))
{
IWebBrowser2* pBrowser2; CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2, (void**)&pBrowser2);
if (pBrowser2)
{
VARIANT vEmpty;
VariantInit(&vEmpty); BSTR bstrURL = SysAllocString(L"http://microsoft.com"); HRESULT hr = pBrowser2->Navigate(bstrURL, &vEmpty, &vEmpty, &vEmpty, &vEmpty);
if (SUCCEEDED(hr))
{
pBrowser2->put_Visible(VARIANT_TRUE);
}
else
{
pBrowser2->Quit();
} SysFreeString(bstrURL);
pBrowser2->Release();
} OleUninitialize();
}
正规的打开IE是通过COM,可以直接得到对应的IWebBrowser2接口,对其进行各种操作,甚至可以进而得到IHtmlDocument2来对网页内容进行操作,你通过这种FindWindow进行操作的方式是很不可靠的,尤其是不能兼容不同版本界面的IE。
if (SUCCEEDED(OleInitialize(NULL)))
{
IWebBrowser2* pBrowser2; CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2, (void**)&pBrowser2);
if (pBrowser2)
{
VARIANT vEmpty;
VariantInit(&vEmpty); BSTR bstrURL = SysAllocString(L"http://microsoft.com"); HRESULT hr = pBrowser2->Navigate(bstrURL, &vEmpty, &vEmpty, &vEmpty, &vEmpty);
if (SUCCEEDED(hr))
{
pBrowser2->put_Visible(VARIANT_TRUE);
}
else
{
pBrowser2->Quit();
} SysFreeString(bstrURL);
pBrowser2->Release();
} OleUninitialize();
}
而且我用的MFC(dll)的项目