SHdovw与internetexplor

来源:互联网 发布:java注释实例 编辑:程序博客网 时间:2024/05/18 07:52
 

1. 問題描述

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

 

2. 方法

(1) 取得 Internet Explorer 網址

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

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

01this.lbURL.Items.Clear();
02// 取得目前 Shell 的所有視窗
03SHDocVw.ShellWindows shellWindows =new SHDocVw.ShellWindowsClass();
04foreach (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 privatestatic externIntPtr GetForegroundWindow();
07 privatevoid timer1_Tick(objectsender, EventArgs e)
08 {
09     this.lbURL.Items.Clear();
10     // 取得目前 Shell 的所有視窗
11     SHDocVw.ShellWindows shellWindows =new SHDocVw.ShellWindowsClass();
12     foreach(SHDocVw.InternetExplorer ie inshellWindows)
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

 

原创粉丝点击