IE.Visible = false;但它实际显示? C#

时间:2015-08-28 13:57:58

标签: c# internet-explorer navigation shdocvw

我正试图导航,即无形,尝试了这个

SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
IE.Visible = false;
IE.Navigate("http://example.org");

但是,它实际上显示了IE窗口。隐藏IE窗口的最佳方法是什么?

4 个答案:

答案 0 :(得分:3)

来自文档: “首次创建Windows Internet Explorer应用程序时,它将被隐藏。在使用Navigate方法或GoSearch方法后,它将变为可见。”

导航后设置可见。

https://msdn.microsoft.com/en-us/library/aa752082(v=vs.85).aspx

http://forums.codeguru.com/showthread.php?512303-SHDocVw-InternetExplorerClass-visible-property-to-False-does-not-work-on-some-machine 似乎NavigateComplete事件也使窗口可见,因此它也应该隐藏在该事件的处理程序中。

答案 1 :(得分:0)

Dim IDC As Object
Dim IDCWin As Object

Set IE = CreateObject("InternetExplorer.Application")
Set IDC = CreateObject("Shell.Application")

For Each IDCWin In IDC.Windows

    If IDCWin.LocationURL = "YOUR WEBSITE" Then 
        IDCWin.Visible = False

Next IDCWin

这是我使用的,它对我有用。我遍历IE窗口,当它找到指定的URL时,它会隐藏IE的这个实例。我将它用于我通过excel操作的Web应用程序,但我不希望在使用过程中对用户可见。我希望这有帮助。

答案 2 :(得分:0)

您可以尝试InternetExplorer 吗?这会更改该IE实例的完整性/安全性。

Dim ie As SHDocVw.InternetExplorer
Set ie = New InternetExplorer**Medium**
ie.Visible = False

我用_Medium运行它,并且它一直隐藏着,没有其他必要的东西。 今天,我处理了一个必须省略_Medium才能完全运行我的代码的系统,当我将其重新调试时,我遇到了一个同样的问题,即它似乎无视.Visible = False,除非是_Medium。

答案 3 :(得分:0)

嗨,我在 Excel 中使用 VBA 时遇到了同样的问题,为了解决它,我不得不从 internetexplorermedium 改回 internetexplorer