トップ回答者
Windowsアプリから起動した別のアプリを停止させるには?

質問
-
お世話になります。
以下の方法で、Winアプリからほかのアプリを起動できる事は分かりました。
private void button1_Click(object sender, EventArgs e)
{
Process proc = new Process();
proc.StartInfo.FileName = "C:\\test.exe";
proc.Start();
}
さて、このように起動したアプリを停止する方法が良く分かりません。
proc.Close();
proc.CloseMainWindow();
proc.Dispose();
proc.Kill();
proc.Refresh();
などの違いが良く分かりません。
子プロセスを確実に停止させる方法をご教授頂きたく、よろしくお願いします。
回答
-
早速、ありがとうございます。
説明が不十分なため、色々とご心配いただき恐縮です。
この子プロセスは出来合いのもので、ユーザーとのやり取りなどは一切なく、
お決まりの処理を行うだけのものです。
所がその処理につまづいた場合、親プロセスへエラーを返す仕掛けがなく、
”だんまり”を決め込んでしまいます。(GUIにメッセージを出します)
こんな状態になるのは経験的に他の方法で確認ができるので、そんな時に
無理矢理停止させる事を考えています。
まぁ、身内でツール的な使用のみを考えており、少々強引ですがこんな
方法で乗り切ろうと思っています。
併せて、この辺りの勉強もかねて質問をさせて頂いています。
どうぞ、よろしくお願いします。
-
おおつの井上です。 さんからの引用 proc.Close(); proc.Dispose();
これらは Process クラスのインスタンスの後始末であって呼び出し先プロセスを Close、Dispose するという意味ではありません。
proc.CloseMainWindow(); これは単語のまんまで、メイン ウィンドウを Close することでプロセスの終了を試みる方法です。
proc.Refresh(); ・・・この質問内容であれば、とりあえずリファレンスを見た方が早いです。
子プロセスを確実に停止させる方法をご教授頂きたく、よろしくお願いします。 であれば、
proc.Kill(); になります。
-
すべての返信
-
早速、ありがとうございます。
説明が不十分なため、色々とご心配いただき恐縮です。
この子プロセスは出来合いのもので、ユーザーとのやり取りなどは一切なく、
お決まりの処理を行うだけのものです。
所がその処理につまづいた場合、親プロセスへエラーを返す仕掛けがなく、
”だんまり”を決め込んでしまいます。(GUIにメッセージを出します)
こんな状態になるのは経験的に他の方法で確認ができるので、そんな時に
無理矢理停止させる事を考えています。
まぁ、身内でツール的な使用のみを考えており、少々強引ですがこんな
方法で乗り切ろうと思っています。
併せて、この辺りの勉強もかねて質問をさせて頂いています。
どうぞ、よろしくお願いします。
-
おおつの井上です。 さんからの引用 proc.Close(); proc.Dispose();
これらは Process クラスのインスタンスの後始末であって呼び出し先プロセスを Close、Dispose するという意味ではありません。
proc.CloseMainWindow(); これは単語のまんまで、メイン ウィンドウを Close することでプロセスの終了を試みる方法です。
proc.Refresh(); ・・・この質問内容であれば、とりあえずリファレンスを見た方が早いです。
子プロセスを確実に停止させる方法をご教授頂きたく、よろしくお願いします。 であれば、
proc.Kill(); になります。
-