经查,除了模拟点击之外,没其他好的办法,代码如下:

[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;//关闭这个定时器
}
}
}