1 [DllImport(
"
user32.dll
")]
2 private static extern int FindWindow( string lpClassName, string lpWindowName);
3
4 [DllImport( " user32.dll ", SetLastError = true)]
5 private static extern int FindWindowEx( int parentHandle, int childAfter, string className, string windowTitle);
6
7 [DllImport( " user32.dll ", EntryPoint = " SendMessage ")]
8 private static extern int SendMessage( int hWnd, uint Msg, int wParam, StringBuilder sb);
9
10 [DllImport( " user32.dll ")]
11 private static extern int GetForegroundWindow();
12
13 private const int WM_GETTEXT = 0x000D;
14
15 private void button1_Click( object sender, EventArgs e)
16 {
17 int currentPar = FindIEForm();
18 MessageBox.Show( GetIE6URL(currentPar));
19 MessageBox.Show( GetIE8URL(currentPar));
20 }
21 /// <summary>
22 /// 获得IE窗体的句柄
23 /// </summary>
24 /// <returns></returns>
25 public static int FindIEForm() // 查找IE窗体;找到就返回句柄;
26 {
27 if (FindWindow( " IEFrame ", null) != ( int) 0)
28 {
29 return FindWindow( " IEFrame ", null);
30 }
31 return ( int) 0;
32 }
33
34 /// <summary>
35 /// 获得IE6.0的url
36 /// </summary>
37 /// <param name="phwnd"></param>
38 /// <returns></returns>
39 public static string GetIE6URL( int phwnd) // 得到IE地址栏里的信息;
40 {
41 int child = FindWindowEx(phwnd, 0, " WorkerW ", null);
42 child = FindWindowEx(child, 0, " ReBarWindow32 ", null);
43 child = FindWindowEx(child, 0, " ComboBoxEx32 ", null);
44 child = FindWindowEx(child, 0, " ComboBox ", null);
45 child = FindWindowEx(child, 0, " Edit ", null);
46 StringBuilder buffer = new StringBuilder( 1024);
47 int num = SendMessage(child, WM_GETTEXT, 1024, buffer); // 用一可变字符串变量存储地址栏的信息;
48 string URL = buffer.ToString().Trim( ' / ').ToLower();
49 return URL;
50 }
51
52 /// <summary>
53 /// 获得IE8.0的url
54 /// </summary>
55 /// <param name="phwnd"></param>
56 /// <returns></returns>
57 public static string GetIE8URL( int phwnd) // 得到IE地址栏里的信息;
58 {
59 int mainHand = FindWindow( " IEFrame ", null);
60 int child = FindWindowEx(mainHand, 0, " WorkerW ", null);
61 child = FindWindowEx(child, 0, " ReBarWindow32 ", null);
62 child = FindWindowEx(child, 0, " Address Band Root ", null);
63 child = FindWindowEx(child, 0, " Edit ", null);
64 StringBuilder buffer = new StringBuilder( 1024);
65 int num = SendMessage(child, WM_GETTEXT, 1024, buffer); // 用一可变字符串变量存储地址栏的信息;
66 string URL = buffer.ToString().Trim( ' / ').ToLower();
67 return URL;
68 }
2 private static extern int FindWindow( string lpClassName, string lpWindowName);
3
4 [DllImport( " user32.dll ", SetLastError = true)]
5 private static extern int FindWindowEx( int parentHandle, int childAfter, string className, string windowTitle);
6
7 [DllImport( " user32.dll ", EntryPoint = " SendMessage ")]
8 private static extern int SendMessage( int hWnd, uint Msg, int wParam, StringBuilder sb);
9
10 [DllImport( " user32.dll ")]
11 private static extern int GetForegroundWindow();
12
13 private const int WM_GETTEXT = 0x000D;
14
15 private void button1_Click( object sender, EventArgs e)
16 {
17 int currentPar = FindIEForm();
18 MessageBox.Show( GetIE6URL(currentPar));
19 MessageBox.Show( GetIE8URL(currentPar));
20 }
21 /// <summary>
22 /// 获得IE窗体的句柄
23 /// </summary>
24 /// <returns></returns>
25 public static int FindIEForm() // 查找IE窗体;找到就返回句柄;
26 {
27 if (FindWindow( " IEFrame ", null) != ( int) 0)
28 {
29 return FindWindow( " IEFrame ", null);
30 }
31 return ( int) 0;
32 }
33
34 /// <summary>
35 /// 获得IE6.0的url
36 /// </summary>
37 /// <param name="phwnd"></param>
38 /// <returns></returns>
39 public static string GetIE6URL( int phwnd) // 得到IE地址栏里的信息;
40 {
41 int child = FindWindowEx(phwnd, 0, " WorkerW ", null);
42 child = FindWindowEx(child, 0, " ReBarWindow32 ", null);
43 child = FindWindowEx(child, 0, " ComboBoxEx32 ", null);
44 child = FindWindowEx(child, 0, " ComboBox ", null);
45 child = FindWindowEx(child, 0, " Edit ", null);
46 StringBuilder buffer = new StringBuilder( 1024);
47 int num = SendMessage(child, WM_GETTEXT, 1024, buffer); // 用一可变字符串变量存储地址栏的信息;
48 string URL = buffer.ToString().Trim( ' / ').ToLower();
49 return URL;
50 }
51
52 /// <summary>
53 /// 获得IE8.0的url
54 /// </summary>
55 /// <param name="phwnd"></param>
56 /// <returns></returns>
57 public static string GetIE8URL( int phwnd) // 得到IE地址栏里的信息;
58 {
59 int mainHand = FindWindow( " IEFrame ", null);
60 int child = FindWindowEx(mainHand, 0, " WorkerW ", null);
61 child = FindWindowEx(child, 0, " ReBarWindow32 ", null);
62 child = FindWindowEx(child, 0, " Address Band Root ", null);
63 child = FindWindowEx(child, 0, " Edit ", null);
64 StringBuilder buffer = new StringBuilder( 1024);
65 int num = SendMessage(child, WM_GETTEXT, 1024, buffer); // 用一可变字符串变量存储地址栏的信息;
66 string URL = buffer.ToString().Trim( ' / ').ToLower();
67 return URL;
68 }