2016-07-14 25 views
1

からプロセスが終了したときに起動されません。クローズドイベントに応答してメインウィンドウを再び開くことによって開いているChromeアプリケーションがあります。ただし、GoogleのChromeタスクマネージャからプロセスが終了しても、このイベントは発生しません。どうしてこれなの?これを回避してアプリを開いたままにしておくことはできますか?これまでのところ、私はWindows上でこれを実行しました。Chrome app window.onClosedはタスクマネージャ - Google Chrome

答えて

1

Chromeタスクマネージャは、ローレベルシステム機能を使用してプロセスを終了します。ソースコード(12)を参照してください。

  • WindowsではTerminateProcessだし、ドキュメントは言う:

    プロセスが終了されることから、それ自体を防ぐことはできません。

    The Old New Thingからの引用(それはMSのソフトウェアエンジニアのブログ、かなり有名です):

    は最終的にあなたが側の勝利を決定する必要があり、およびWindowsは、独自のプログラムの制御でユーザーを維持することを決定しました管理者が自分のコンピュータを制御できるようにします。ユーザーは、(十分な特権があれば)任意のプロセスを強制終了することができ、すべてのプログラムがフォーカスを奪うのを止めることができ、必要なファイルを削除することができます。人々があなたのスタックに走り書きし、doublefault作ることができないので、人々はCreateRemoteThread(EndProcess)は、PROCESS_VM_WRITEを否定することはできませんので

    プログラムは、(殺すPROCESS_TERMINATEアクセスを拒否し、PROCESS_CREATE_THREADアクセスを拒否するために自分自身をより困難にしようとすることができ、PROCESS_SUSPEND_RESUMEを否定デバッグ特権、プロセスのデバッグ、EIPの "ExitProcess"への移動を止めることはできません。

    好きな場合は、CSRSS.EXEとWINLOGON.EXEを削除できます。あなたのコンピュータは非常に怒りますが、あなたはそれを行うことができます。

    もう1つの質問には、「ウイルスが同じことをしないようにするにはどうしたらよいですか?これらの方法を実行する方法があれば、ウイルスはそれらを利用して、タスクマネージャに見えないようになり、取り消し不能で不自由なものになる可能性があります。明らかにあなたはそれを望んでいないのですか? (しばらく)SIGKILL無条件に続くプロセスによって見ることができるSIGTERM信号を送信するためのUnixクロムタスクマネージャuses kill API関数、で

  • SIGKILLとSIGSTOPはできない信号キャッチ、ブロック、または無視されます。

+0

Windowsタスクマネージャからプロセスを強制終了すると、onClosedが発生するのは面白いことです。 – Ian

+1

明らかに、アプリケーションを正常に終了しようとするWindowsタスクマネージャーの「終了タスク」ボタンについて話しています。 「プロセスの終了」ボタンは、何が来るのかを見る機会を与えずにプロセスを終了させるのに対して、「タスクマネージャーを使ってウィンドウのプロセスを強制終了できますか?」(http://stackoverflow.com/a/1527510) – wOxxOm

関連する問題