2011-10-20 61 views
1

我正在寫一個Systray應用程序,用於輪詢在IE中是否打開某個特定的URL,並在檢測到該通知時彈出通知。在c#中查詢網址的輪詢#

它不需要是實時的,只需要檢測頁面是否打開並提示進行操作。

以這種方式輪詢最有效的方法是什麼?我已經將一些代碼放在一起來檢查網站是否打開:

SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows(); 
     string filename; 
     foreach (SHDocVw.InternetExplorer ie in shellWindows) 
     { 
      filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower(); 
      if (filename.Equals("iexplore")) 
      { 
       string[] urlParts = (ie.LocationURL.ToString()).Split('/'); 
       string website = urlParts[2]; 
       if (website == "myapp:8080") { appOpen = true; }; 
      } 
     } 

如果appOpen返回true,則應該觸發通知。

我想我將需要線程,因爲應用程序上還有一個菜單。我希望這是儘可能小的資源足跡。或者,如果有一些觀察員可以使用,這可能是更好的方法。 (雖然我也需要檢查Chrome瀏覽器,

+0

因此,你有一些代碼似乎工作。什麼是問題? – svick

+0

我有代碼做測試,但不知道有這個最好的方法不斷輪詢(即現在它將運行一次,就是這樣,我希望它不斷檢查URL是否打開。) – Ben

回答

2

你可以使用Timer並集成你的代碼來檢查計時器tick中的URL。當然,如果URL被打開,然後關閉,你的計時器,你不會知道它