C++ 使用COM Win32控制台应用程序隐藏IE时出现问题
我对COM有一个小问题。我用COM编写了一个控制台程序,它可以向用户隐藏Internet Explorer并在后台进行操作。问题是,当打开一个新的选项卡时,浏览器变得可见。为什么会这样。。。我能阻止这种行为吗 代码:C++ 使用COM Win32控制台应用程序隐藏IE时出现问题,c++,c,winapi,com,console,C++,C,Winapi,Com,Console,我对COM有一个小问题。我用COM编写了一个控制台程序,它可以向用户隐藏Internet Explorer并在后台进行操作。问题是,当打开一个新的选项卡时,浏览器变得可见。为什么会这样。。。我能阻止这种行为吗 代码: HRESULT hr; hr = CoInitialize(NULL); if (FAILED(hr)) { cout << "Error ConInitialize\n"; exit(0); } IWebBrowser2 *pwb2; hr =
HRESULT hr;
hr = CoInitialize(NULL);
if (FAILED(hr))
{
cout << "Error ConInitialize\n";
exit(0);
}
IWebBrowser2 *pwb2;
hr = CoCreateInstance(CLSID_InternetExplorer,
NULL,
CLSCTX_ALL,
IID_IWebBrowser2,
(void**)&pwb2);
if (FAILED(hr))
{
cout << "Error CoCreateInstance\n";
exit(0);
}
hr = pwb2->put_Visible(VARIANT_FALSE); // Turn on hidden, works fine.
if (FAILED(hr))
{
cout << "Error blah blah\n";
pwb2->Quit();
exit(0);
}
HRESULT-hr;
hr=协同初始化(空);
如果(失败(小时))
{
无法导航2(&vURL),
&vFlag,
&气势汹汹,,
&气势汹汹,,
&气势汹汹的);
如果(失败(小时))
{
不能退出();
出口(0)
}
谢谢你的帮助。:)
p.D:对不起我的英语。尝试在
put\u Visible
旁边添加put\u registerabrowser(VARIANT\u FALSE)
。您好,感谢您的回复。不幸的是,它不起作用,应用程序失败。当我发送“click”时也会出现此问题在带有PostMessage的链接上,将打开一个新选项卡,浏览器将可见。为什么要对非可视工作使用可视控件?
VARIANT vURL;
vURL.vt = VT_BSTR;
vURL.bstrVal = SysAllocString(L"URL_TO_BACKOFFICE");
VARIANT vFlag;
vFlag.vt = VT_I4;
vFlag.intVal = 2048;
VARIANT vEmpty;
VariantInit(&vEmpty);
hr = pwb2->Navigate2(&vURL,
&vFlag,
&vEmpty,
&vEmpty,
&vEmpty);
if (FAILED(hr))
{
cout << "Error to open Tab.\n";
pwb2->Quit();
exit(0)
}