这是谁的Bug-IE还是Windows/.NET?

这是谁的Bug-IE还是Windows/.NET?,.net,windows,internet-explorer,process,.net,Windows,Internet Explorer,Process,当我运行这个程序,然后进入任务管理器并手动结束其中一个iexplore实例(大概有两个,因为IE现在也使用多个进程)时,我看到一个错误弹出框,显示一个选项卡已恢复。但是,由于我的进程设置,iexplore本身是不可见的。因此,我不认为弹出的气球恢复消息应该出现。这是IE在显示此消息之前未检查其是否可见的错误,还是Windows/.NET未阻止IE显示任何“窗口”(本例中为气球)的错误 如果这是一个bug,我应该在世界上哪里报告它?连接?我很惊讶这一切都能正常工作,非控制台模式的应用程序通常会忽略

当我运行这个程序,然后进入任务管理器并手动结束其中一个iexplore实例(大概有两个,因为IE现在也使用多个进程)时,我看到一个错误弹出框,显示一个选项卡已恢复。但是,由于我的进程设置,iexplore本身是不可见的。因此,我不认为弹出的气球恢复消息应该出现。这是IE在显示此消息之前未检查其是否可见的错误,还是Windows/.NET未阻止IE显示任何“窗口”(本例中为气球)的错误


如果这是一个bug,我应该在世界上哪里报告它?连接?

我很惊讶这一切都能正常工作,非控制台模式的应用程序通常会忽略请求的窗口样式。例如,尝试notepad.exe

但是,是的,这将是IE中的一个缺陷。除将请求的窗口样式传递给已启动的进程外,Process类没有其他功能。进程通过WinMain()的nShowCmd()参数获取此请求


在Connect上有一个IE反馈通道。但他们只接受IE9的报告,你必须申请。我猜,试图避开IE6仇恨邮件。

如果您想以正确的方式执行此操作,您应该使用将interop编写到CLSID_InternetExplorer。您可以获得的互操作


这将创建一个不可见的IE实例,然后您可以使用
IWebBrowser2::put\u Visible(VARIANT\u TRUE)
使其在以后可见。

我认为它就是这样设计的。IE注意到同级进程已停止,并假定它已崩溃并运行恢复。对不起,我认为您没有抓住要点。我知道泡沫是关于什么的。我不知道为什么它会出现,当我给IE的论点被隐藏和IE本身被隐藏。。。只是不是这个小气球弹出。嗯,那么你是说忽略这些设置是应用程序的选择?通过WindowsStyle设置,我可以更加理解这一点。然而,CreateNoWindow选项听起来更像Windows控制的东西(又名-应用程序不知道它是隐藏的)。我将看看如何在Connect上注册……我假设IE9中也存在这个bug。另一方面,notepad.exe确实被隐藏了。是的,这是IE的错,而不是运行时的错。然而,就bug而言,我怀疑这是相当低的优先级。。。这不是一个真正受支持的场景,有一种方法可以正确地做你想做的事情(见我的答案)。这让我害怕你知道这么多:-)谢谢你提供的信息,它看起来正是我所需要的,尽管还需要更多的工作。
Process process = new Process
{
  StartInfo =
  {
     CreateNoWindow = false,
     FileName = "iexplore.exe",
     UseShellExecute = true,
     ErrorDialog = false,
     WindowStyle = ProcessWindowStyle.Hidden
  }
};

process.Start();