- 締切済み
C#でEXEを閉じるとエラー
myProcess.StartInfo.FileName = @"C:\Program Files\Sample\Sample(1)\Sample.exe"; myProcess1.Start(); myProcess.StartInfo.FileName = @"C:\Program Files\Sample\Sample(2)\Sample.exe"; myProcess2.Start(); 上記として、開いたウィンドウを閉じるボタンで終了した際にエラーとなります。 プロセスを一つにすると、エラーが出ないため、同一名のプロセスが原因しているのかと思うのですが、処理の仕方がわかりません。 myProcess1.Exited += new EventHandler(myProcess_Exited); myProcess2.Exited += new EventHandler(myProcess_Exited); private void myProcess_Exited(object sender, System.EventArgs e) { Process exitProcess = (Process)sender; exitProcess.Dispose(); } としてもエラーになりました。 今後、Sample.exeは6つ開きたいのですが、2つでつまづいています。 対処法をご存知の方がおられましたら、アドバイスよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Yune-Kichi
- ベストアンサー率74% (465/626)
添付の画像は.NET Framework自体が出す例外には含まれることのない文字列です。 そのダイアログをだしているのはSample.exeの方ではないでしょうか。 つまり,Sample.exe側にバグがあり,複数起動した結果,それを踏んでしまったと推測します。
- chie65536(@chie65535)
- ベストアンサー率44% (8756/19869)
コピペで一箇所直し忘れた。 Process myProcess1 = new Process(); Process myProcess2 = new Process(); myProcess1.StartInfo.FileName = @"C:\Program Files\Sample\Sample(1)\Sample.exe"; myProcess1.Start(); myProcess2.StartInfo.FileName = @"C:\Program Files\Sample\Sample(2)\Sample.exe"; myProcess2.Start();
- chie65536(@chie65535)
- ベストアンサー率44% (8756/19869)
Process myProcess1 = new Process(); Process myProcess1 = new Process(); myProcess1.StartInfo.FileName = @"C:\Program Files\Sample\Sample(1)\Sample.exe"; myProcess1.Start(); myProcess2.StartInfo.FileName = @"C:\Program Files\Sample\Sample(2)\Sample.exe"; myProcess2.Start(); じゃないの? なんで両方とも myProcess.StartInfo.FileName = myProcess.StartInfo.FileName = になってるの?
補足
ごめんなさい。 タイプミスしました。 オブジェクト作成は Process myProcess1 = new Process(); Process myProcess2 = new Process(); myProcess1.StartInfo・・・ myProcess2.StartInfo・・・ としています。
お礼
アドバイスありがとうございます。 Sample.exeをダブルクリックで同数起動しても問題ないのですが、プログラムから呼び出すと上記エラーとなってしまいます。 上記プログラムから呼び出す場合と、ダブルクリックで呼び出す場合とでは何が違うのか検討が付きません。 何か手は無いでしょうか?