- - PR -
C#で別Exeをダイアログで開くには
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-12-20 10:21
C#で自作Exeを開く処理を行っています
現在は、Process.start()を使用して別Exeを呼び出しているのですが ダイアログを開いた時のように、呼び出されたExeを閉じるまで、 Process.start()で、処理をとめておきたいのですが 可能でしょうか? 呼び出したExeのプロセスが終了するまで待機する処理を入れてみましたが、 そうすると、呼出先のExeのウィンドウをドラッグすると、 呼び出し元のウィンドウに呼び出し先のウィンドウが張付いたような感じに なって、汚いので 出来れば、別Exeをダイアログで開きたいのですが、可能でしょうか? | ||||
|
投稿日時: 2006-12-20 10:36
は使用できないですか? _________________ -------------------------------------------- HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ | ||||
|
投稿日時: 2006-12-20 10:37
System.Diagnostics.Process.Start メソッドで、制御を止めることは簡単ではありませんが、 System.Diagnostics.Process.WaitForExit メソッドでならば、簡単に止めることができます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-12-20 11:02
System.Diagnostics.Process.WaitForExit メソッドは試したのですが
確かに止めることは出来るのですが、 呼び出し元の画面が真っ白になってしまいます ゆーざーは、呼出元の画面を見て、呼び出し先画面で処理をするので、 出来れば、止めることが出来る、かつ呼出元の画面を目で見ることが出来るようにしたいのですが | ||||
|
投稿日時: 2006-12-20 11:24
別のexeを参照できるようにして、対象のFormのインスタンスをつくって、ShowDialogでダイアログとして呼び出せたと思います。
dllに含まれてるFormを呼び出すのと同じ方法ですね。exeもdllも同じものなので。 VS.NET 2003まではIDEがexeの参照に対応してませんでしたが、VS2005ならIDE上からも可能なはず。 2003で開発している場合はコンパイルを自分でやればできたはず。 | ||||
|
投稿日時: 2006-12-20 11:25
AppDomainのExecuteAssemblyで自スレッドから呼び出したらどうでしょう?
System.AppDomain ad = System.AppDomain.CreateDomain("hoge"); ad.ExecuteAssembly("app.exe"); | ||||
|
投稿日時: 2006-12-20 11:39
System.AppDomain ad
= System.AppDomain.CreateDomain("hoge"); ad.ExecuteAssembly("app.exe"); も試してみましたが、 ご指摘の通りにはなりましたが、 今度は、呼び出し元の画面の操作が自由に出来てしまいます 理想はShowDialog()メソッドでフォームを呼び出したような状態にしたいのですが・・・ 無理ばかり言って申し訳ございません | ||||
|
投稿日時: 2006-12-20 11:45
操作できないようにコーディングすれば良いと思いますが... m(r_n)g _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |