2015-08-28 190 views
0

我想即無形導航,試過這種IE.Visible = false;但它實際上顯示? C#

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

作品,但是,它實際上顯示了IE窗口。什麼是隱藏IE窗口的最佳方法?

+0

請問您的程序架構是否需要具體的IE?如果沒有,您可以使用瀏覽器控件來靜默導航。例如,如果您試圖實現的唯一目的是發送帶有IE用戶代理字符串的HTTP請求以緩存特定網站或某些類似內容。您可以改用網頁瀏覽器控制。 –

回答

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事件也使窗口可見,所以它也應在該事件處理程序隱藏。

+0

嘗試導航後添加。它仍然顯示。 – user198989

+0

請注意鏈接底部的註釋 - 可能是問題所在。 – PaulF

+1

看到這個鏈接,可能有助於http://forums.codeguru.com/showthread.php?512303-SHDocVw-InternetExplorerClass-visible-property-to-False-does-not-work-on-some-machine。您可能需要將其隱藏在NavigateComplete事件中。 – PaulF

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應用程序,但我不希望在使用過程中對用戶可見。我希望這有幫助。

相關問題