私は2つの異なるアプリケーションを同時に実行しています。一つは、それが二番目のメインフォームがありProcess.CloseMainWindow()はForm.Closingイベントを発生させません。
を開始し、最初のアプリケーションをリセットする薬剤である 隠されたまましなければならないので、このアプリケーションは、自己のホストサーバーでのみ通知アイコンの形 なしタスクバーアイコンで隠されたフォームを持つアプリケーションであり、イベントハンドラは、それに追加:
public Form1()
{
this.FormClosing += Form1_FormClosing;
}
private void doDispose() {
//Takes time to disconnected
//about 1 seconds delay
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
doDispose();
}
エージェントアプリケーション(アプリのリセットアクションを呼び出す)
private void resetApp() {
var process = //get process from Prcesses collection
try
{
process.CloseMainWindow(); <- not raising closing event in the main form
process.WaitForExit(1000);
process.Close();
}
catch
{
}
}
からのコード私は別の記事からいくつかのことを試してみました。メインモデルにはprocess.MainWindowHandle
を使用してアクセスしますが、フォームが非表示になっているため常にゼロが返されます。
PS - 隠しフォームを手動で最初のアプリを閉じると、イベントが発生し、切断プロセスが必要に応じて実行されます。フォームを閉じる方法に応じて
おかげ
感謝を - しかし、そのない2アプリケーション最初のアプリケーションを終了する必要があるエージェント同じアプリケーション – Izikon