2013-01-23 15 views
7

Google Chromeを安全に閉じるにはどうすればよいですか?私はクロムプロセスを殺すことができますが、この場合、Google Chromeは次の実行時にアプラッシュを報告します。Google Chromeをプログラムで安全に閉じる方法

+0

は、Chromeのウィンドウへのハンドルを取得し、それらのそれぞれに 'WM_CLOSE'を送信します。http://stackoverflow.com/questions/1129204/how -to-use-wm-close-in-c – Jon

+0

これを見てくださいhttp://stackoverflow.com/questions/2055753/how-to-gracefully-terminate-a-process –

+0

私はただ好奇心が強いです...デフォルトのGoogle Chromeやその他のブラウザでは、アプリケーションがブラウザを閉じようとしていることを警告してくれますか?ユーザーとして考えると、これは非常に面倒なプロセスだと思います。たいていの場合、私は非常に多くのタブが開かれており、すべてを閉じたいとは思っていません。各タブには独自のプロセスがあるため、ブラウザ全体ではなく特定のタブを閉じる方が良いでしょうか? –

答えて

2

Processクラスを使用してウィンドウハンドルを特定し、ウィンドウにWM_CLOSEメッセージを送信してみることができます。

+0

動作しません。あなたはコードを通過することができます – Stephane

9

あなたはこのように、ほとんど知られUI Automation 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(); 
     } 
    } 
} 
+0

偉大に見えますが、私は.net 2.0互換の解決 – user2003858

+3

あなたは* that *を質問に記載する必要があります。 –

+1

残念ながら、複数のクロムウィンドウを開いていると、最初のウィンドウを閉じることはできません。 – Michael

関連する問題