天天看點

wpf中webbrowser彈出windows 安全警告視窗的處理

[DllImport("User32.dll", EntryPoint = "FindWindow")]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("User32.dll", EntryPoint = "FindWindowEx")]
        private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName);
        [DllImport("user32.dll")]
        static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
        private int WM_CLICK = 0x00F5;      
//使用定時器來檢查是否出現視窗,如果有就關閉
 private void TimerCheckWebAlert_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            IntPtr hwnd = FindWindow(null, "Windows 安全警告");
            if (hwnd != IntPtr.Zero)
            {
                IntPtr btnhwnd = FindWindowEx(hwnd, IntPtr.Zero, "Button", "是(&Y)");
                if (btnhwnd != IntPtr.Zero)
                {
                    SendMessage(btnhwnd, WM_CLICK, 0, 0);//先移上去
                    SendMessage(btnhwnd, WM_CLICK, 0, 0);//再點選
                }
            }
            IntPtr hwndweb = FindWindow(null, "Web 浏覽器");
            if (hwndweb != IntPtr.Zero)
            {
                IntPtr btnhwnd = FindWindowEx(hwnd, IntPtr.Zero, "Button", "是(&Y)");
                if (btnhwnd != IntPtr.Zero)
                {
                    SendMessage(btnhwnd, WM_CLICK, 0, 0);
                    SendMessage(btnhwnd, WM_CLICK, 0, 0);
                    timerCheckWebAlert.Enabled = false;//關閉這個定時器
                }
            }
        }