1. 问题描述
如何取得正在使用的 Interner Explorer 网址
2. 方法
(1) 取得 Internet Explorer 网址
先加入参考 Microsoft HTML Object Library 和 Microsoft Internet Controls
接着请参考以下代码
this.lbURL.Items.Clear();
// 取得目前 Shell 的所有视窗
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
// 判断视窗是否为 iexplore
if (Path.GetFileNameWithoutExtension(ie.FullName).ToLower().Equals("iexplore"))
{
this.lbURL.Items.Add(ie.LocationURL);
}
}
通过 Windows API GetForegroundWindow 取得正在使用视窗[前景]的控制代码
将宣告 GetForegroundWindow 部分加入,並且在取得 Internet Explorer 视窗时,判断是否为正在使用前景视窗
//
// Windows API : GetForegroundWindow
// 取得正在使用视窗[前景]的控制代码
//
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
private void timer1_Tick(object sender, EventArgs e)
{
this.lbURL.Items.Clear();
// 取得目前 Shell 的所有视窗
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
// 判断视窗是否為 iexplore
if (Path.GetFileNameWithoutExtension(ie.FullName).ToLower().Equals("iexplore"))
{
// 判断此 Internet Explorer 是否为正在使用的视窗[前景]
if (ie.HWND == GetForegroundWindow().ToInt32())
{
this.txtURL.Text = ie.LocationURL;
}
this.lbURL.Items.Add(ie.LocationURL);
}
}
}