首頁 > C-Sharp > webBrowser之取消重新傳送對話框

webBrowser之取消重新傳送對話框

2008年12月27日 admin 發表評論 閱讀評論
   

C# 使用WIN32API須先引入

http://msdn.microsoft.com/zh-tw/library/ms171548.aspx

using System.Runtime.InteropServices;

 在主程式加入API函數

      
[DllImport("User32.dll", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("User32.dll")]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, int hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll")]
public static extern int GetDlgCtrlID(IntPtr hWnd);
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
private const int WM_COMMAND = 0x111;

使用一個TIMER去偵測 webBrowser是否有跳出整理視窗

private void timer1_Tick(object sender, EventArgs e){
 IntPtr hWnd = FindWindow("#32770", "Windows Internet Explorer");
            if (!hWnd.Equals(IntPtr.Zero)){
                IntPtr hButton = FindWindowEx(hWnd, 0, "BUTTON", "重試(&R)");
                if (!hButton.Equals(IntPtr.Zero)){
                    SendMessage(hWnd, WM_COMMAND, GetDlgCtrlID(hButton), hButton);
                }
            }
          }
Categories: C-Sharp Tags: , ,
  1. 目前尚無任何的評論。
  1. 目前尚無任何 trackbacks 和 pingbacks。