当我运行这个,然后进入任务管理器并手动结束其中一个iexplore实例(有2个因为IE现在也使用多个进程)我看到一个错误弹出框,表示已经恢复了一个选项卡。但是,由于我的进程设置,iexplore本身是不可见的。因此,我不认为弹出气球恢复信息应该出现。这是IE的错误,在显示此消息之前没有检查它是否可见,或者这是Windows / .NET的错误阻止IE显示任何“窗口”(在这种情况下为气球)?
Process process = new Process
{
StartInfo =
{
CreateNoWindow = false,
FileName = "iexplore.exe",
UseShellExecute = true,
ErrorDialog = false,
WindowStyle = ProcessWindowStyle.Hidden
}
};
process.Start();
如果这是一个错误,我在世界上哪里报告?连接?
答案 0 :(得分:1)
我很惊讶这种方法很有效,非控制台模式的应用程序通常会忽略所请求的WindowStyle。以tryepad.exe为例。
但是,这将是IE中的一个缺陷。除了将请求的窗口样式传递给已启动的进程之外,Process类没有其他功能。该进程通过WinMain()的nShowCmd()参数获取此请求。
Connect的IE有一个反馈渠道。但他们只接受IE9的报告,你必须申请。试图让IE6厌恶邮件,我猜。
答案 1 :(得分:1)
如果您想以正确的方式执行此操作,则应将CoCreateInstance() CLSID_InternetExplorer与IID_IWebBrowser2编写为互操作。您可以获得IWebBrowser2 at pinvoke.net的互操作。
这将创建一个不可见的IE实例,然后您可以使用IWebBrowser2::put_Visible(VARIANT_TRUE)
使其在以后可见。