2013-10-02 69 views
4

我想打開一個隱藏的Internet Explorer窗口,而不會竊取焦點。我有一個Timer對象,每5分鐘打開Internet Explorer檢查一次網站的更新。問題在於每次檢查更新時,都會從當前應用程序的前臺竊取焦點。以下是我如何開始這個過程:打開一個隱藏的Internet Explorer窗口而不讓它聚焦?

 Process m_Proc = new Process(); 
     m_Proc.StartInfo.Arguments = String.Format("{0}{1}", "-nomerge ", browserURL); 
     m_Proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
     m_Proc.StartInfo.UseShellExecute = true; 
     m_Proc.StartInfo.CreateNoWindow = true; 
     m_Proc.StartInfo.FileName = String.Format("iexplore.exe"); 
     m_Proc.Start(); 

它總是偷竊焦點,即使它被隱藏。我希望它像沒有任何事情發生一樣開始,所以用戶可以繼續處理他們正在做的事情。謝謝。

回答

1

嘗試通過其COM接口自動運行Internet Explorer,而不是明確創建進程。 Here's how它可以做到。只是不要做ie.Visible = true,它會保持隱藏。完成後請致電ie.Quit()

0

我甚至不確定爲什麼你會打開瀏覽器來做到這一點,讓你的代碼以另一種方式檢查網站會不會更容易?也許是這樣的。

 string url = "http://www.google.com"; 
     string result = null; 
     try 
     { 
      WebClient client = new WebClient(); 
      result = client.DownloadString(url); 
      //Store this result and compare it to last stored result for changes.   
     } 
     catch (Exception ex) 
     { 
      // handle error 
      MessageBox.Show(ex.Message); 
     } 

我的C#很生鏽,所以你需要仔細檢查一下。

+0

謝謝,震顫。我需要使用IE的API在瀏覽器中自動點擊或填寫表單。 WebClient對象可能嗎? – enlilbinny

相關問題