SHdovw與internetexplor

 

1. 問題描述

如何取得正在使用的 Interner Explorer 網址

 

2. 方法

(1) 取得 Internet Explorer 網址

先加入參考 Microsoft HTML Object Library 與 Microsoft Internet Controls

接著請參考以下程式碼與註解

01 this.lbURL.Items.Clear();
02 // 取得目前 Shell 的所有視窗
03 SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
04 foreach (SHDocVw.InternetExplorer ie in shellWindows)
05 {
06     // 判斷視窗是否為 iexplore
07     if (Path.GetFileNameWithoutExtension(ie.FullName).ToLower().Equals("iexplore"))
08     {
09         this.lbURL.Items.Add(ie.LocationURL);
10     }
11 }

 

image

 

(2) 透過 Windows API GetForegroundWindow 取得正在使用視窗[前景]的控制代碼

將宣告 GetForegroundWindow 部分加入,並且在取得 Internet Explorer 視窗時,判斷是否為正在使用前景視窗

01 // 
02  // Windows API : GetForegroundWindow
03  // 取得正在使用視窗[前景]的控制代碼
04  // 
05  [DllImport("user32.dll")]
06  private static extern IntPtr GetForegroundWindow();
07  private void timer1_Tick(object sender, EventArgs e)
08  {
09      this.lbURL.Items.Clear();
10      // 取得目前 Shell 的所有視窗
11      SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
12      foreach (SHDocVw.InternetExplorer ie in shellWindows)
13      {
14          // 判斷視窗是否為 iexplore
15          if (Path.GetFileNameWithoutExtension(ie.FullName).ToLower().Equals("iexplore"))
16          {
17              // 判斷此 Internet Explorer 是否為正在使用視窗[前景]
18              if (ie.HWND == GetForegroundWindow().ToInt32())
19              {
20                  this.txtURL.Text = ie.LocationURL;
21              }
22              this.lbURL.Items.Add(ie.LocationURL);
23          }
24      }
25  }

 

image

出處:http://www.dotblogs.com.tw/chou/archive/2010/01/11/12953.aspx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章