我想即无形导航,试过这种IE.Visible = false;但它实际上显示? C#
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
IE.Visible = false;
IE.Navigate("http://example.org");
作品,但是,它实际上显示了IE窗口。什么是隐藏IE窗口的最佳方法?
我想即无形导航,试过这种IE.Visible = false;但它实际上显示? C#
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
IE.Visible = false;
IE.Navigate("http://example.org");
作品,但是,它实际上显示了IE窗口。什么是隐藏IE窗口的最佳方法?
来自文档: “当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事件也使窗口可见,所以它也应在该事件处理程序隐藏。
尝试导航后添加。它仍然显示。 – user198989
请注意链接底部的注释 - 可能是问题所在。 – PaulF
看到这个链接,可能有助于http://forums.codeguru.com/showthread.php?512303-SHDocVw-InternetExplorerClass-visible-property-to-False-does-not-work-on-some-machine。您可能需要将其隐藏在NavigateComplete事件中。 – PaulF
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应用程序,但我不希望在使用过程中对用户可见。我希望这有帮助。
请问您的程序架构是否需要具体的IE?如果没有,您可以使用浏览器控件来静默导航。例如,如果您试图实现的唯一目的是发送带有IE用户代理字符串的HTTP请求以缓存特定网站或某些类似内容。您可以改用网页浏览器控制。 –