2017-09-09 2 views
0

バックエンドのC#プロセスで開いているFirefoxブラウザを終了したいと思います。他のすべてのブラウザは、C#プロセスによって開かれたwindow.close();をサポートしています。しかし、Firefoxはサポートしていません。 の私のコードC#Process.Start("firefox", "http://www.google.com");ブラウザを開いた後、私はこのjsコードを呼び出しています。 window.close();他のすべてのブラウザは完全に動作します。しかしFF。もしあなたが私を助けてくれたらバックエンドのC#プロセスで開いているFirefoxブラウザを終了したい

答えて

1

this documentationによると、スクリプトはそれが元々開いていないウィンドウを閉じることができないはずは:

はwindow.close()メソッドは、現在のウィンドウを閉じ、またはそれが呼び出されたウィンドウ。

このメソッドは、window.open()メソッドを使用してスクリプトによって開かれたウィンドウに対してのみ呼び出すことができます。スクリプトによってウィンドウが開かれていない場合は、コンソールに次のようなエラーが表示されます。スクリプトで開かれなかったウィンドウを閉じることはできません。

今日、IEとChromeで動作しますが、それは永遠に機能しないと考えてください。

プログラムでウィンドウを閉じたい場合は、あなたの最善の選択肢は、プロセスをC#コードから閉じることです。

var p = Process.Start("firefox", "http://www.google.com"); 
System.Threading.Thread.Sleep(10000); //Wait 10 seconds 
p.CloseMainWindow(); 
+0

それが動作しない場合、または 'p.Kill()'。 – Nisarg

+0

それは私のためには機能しません。私は例外を取得しています 'System.InvalidOperationException: 'プロセスが終了したため要求を処理できません。' –

関連する問題