■87853 / inTopicNo.2) |
Re[1]: Process.CloseMainWindow について |
□投稿者/ Hongliang (659回)-(2018/07/06(Fri) 17:39:11)
|
> 目的はアプリケーションの終了なのですが、Process.CloseMainWindow() は > メインウインドウを閉じるメソッドではないのでしょうか? Windowsのウィンドウの仕組みにおいては、「メインウィンドウ」というものは特に定義があるわけではありません。 Process::CloseMainWindow()は、「メインウィンドウ」を「表示されていてかつオーナーが存在しないウィンドウ」と定義しているようです。 WinFormであれば、FormのOwnerを設定したりShowの引数に与えてやれば、そのFormはメインウィンドウ扱いされなくなりますね。 参考: https://referencesource.microsoft.com/#System/services/monitoring/system/diagnosticts/ProcessManager.cs,53d47c883d8b918a
そもそも、プロセスは必ずしもウィンドウを持っているわけではありませんし、全てのウィンドウを閉じたからと言ってプロセスが終了するかどうかもそのアプリケーションの作り次第です。 そして「正常終了」の定義もアプリケーション次第。 なのでアプリケーションによってどう終了させるのが正しいのかは異なります。
という前提の上で、普通に作ったWinFormアプリであり、最初に表示されたFormを閉じれば特に終了確認などもなくアプリケーションが終了する、というものであれば、 > 終了するまで Process.CloseMainWindow() を繰り返す でいいんじゃないでしょうか。
|
|