8

如何通过 C# 安全地关闭谷歌浏览器?我可以杀死 chrome 进程,但在这种情况下,Google Chrome 会在下次运行时报告 appcrash。

4

2 回答 2

10

您可以使用鲜为人知的UI 自动化 API,如下所示:

static void CloseAllChromeBrowsers()
{
    foreach (Process process in Process.GetProcessesByName("chrome"))
    {
        if (process.MainWindowHandle == IntPtr.Zero) // some have no UI
            continue;

        AutomationElement element = AutomationElement.FromHandle(process.MainWindowHandle);
        if (element != null)
        {
            ((WindowPattern)element.GetCurrentPattern(WindowPattern.Pattern)).Close();
        }
    }
}
于 2013-01-23T12:49:18.763 回答
3

您可以尝试使用Process该类确定窗口句柄并向窗口发送WM_CLOSE消息。

于 2013-01-23T12:29:03.417 回答