- PR -

C#で別Exeをダイアログで開くには

投稿者投稿内容
匿名希望
常連さん
会議室デビュー日: 2006/12/12
投稿数: 23
投稿日時: 2006-12-20 10:21
C#で自作Exeを開く処理を行っています

現在は、Process.start()を使用して別Exeを呼び出しているのですが
ダイアログを開いた時のように、呼び出されたExeを閉じるまで、
Process.start()で、処理をとめておきたいのですが
可能でしょうか?

呼び出したExeのプロセスが終了するまで待機する処理を入れてみましたが、
そうすると、呼出先のExeのウィンドウをドラッグすると、
呼び出し元のウィンドウに呼び出し先のウィンドウが張付いたような感じに
なって、汚いので

出来れば、別Exeをダイアログで開きたいのですが、可能でしょうか?
HIRO
大ベテラン
会議室デビュー日: 2002/06/21
投稿数: 109
投稿日時: 2006-12-20 10:36
コード:
System.Diagnostics.Process process = System.Diagnostics.Process.Start("c:\\windows\\notepad.exe");
process.WaitForExit();



は使用できないですか?
_________________
--------------------------------------------
HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています
HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-20 10:37
引用:

匿名希望さんの書き込み (2006-12-20 10:21) より:

現在は、Process.start()を使用して別Exeを呼び出しているのですがダイアログを開いた時のように、呼び出されたExeを閉じるまで、Process.start()で、処理をとめておきたいのですが可能でしょうか?


System.Diagnostics.Process.Start メソッドで、制御を止めることは簡単ではありませんが、
System.Diagnostics.Process.WaitForExit メソッドでならば、簡単に止めることができます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
匿名希望
常連さん
会議室デビュー日: 2006/12/12
投稿数: 23
投稿日時: 2006-12-20 11:02
System.Diagnostics.Process.WaitForExit メソッドは試したのですが
確かに止めることは出来るのですが、
呼び出し元の画面が真っ白になってしまいます

ゆーざーは、呼出元の画面を見て、呼び出し先画面で処理をするので、
出来れば、止めることが出来る、かつ呼出元の画面を目で見ることが出来るようにしたいのですが
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-12-20 11:24
別のexeを参照できるようにして、対象のFormのインスタンスをつくって、ShowDialogでダイアログとして呼び出せたと思います。
dllに含まれてるFormを呼び出すのと同じ方法ですね。exeもdllも同じものなので。

VS.NET 2003まではIDEがexeの参照に対応してませんでしたが、VS2005ならIDE上からも可能なはず。
2003で開発している場合はコンパイルを自分でやればできたはず。
bunta
会議室デビュー日: 2006/12/20
投稿数: 1
投稿日時: 2006-12-20 11:25
AppDomainのExecuteAssemblyで自スレッドから呼び出したらどうでしょう?

System.AppDomain ad
= System.AppDomain.CreateDomain("hoge");
ad.ExecuteAssembly("app.exe");

匿名希望
常連さん
会議室デビュー日: 2006/12/12
投稿数: 23
投稿日時: 2006-12-20 11:39
System.AppDomain ad
= System.AppDomain.CreateDomain("hoge");
ad.ExecuteAssembly("app.exe");

も試してみましたが、
ご指摘の通りにはなりましたが、
今度は、呼び出し元の画面の操作が自由に出来てしまいます

理想はShowDialog()メソッドでフォームを呼び出したような状態にしたいのですが・・・
無理ばかり言って申し訳ございません
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-20 11:45
引用:

匿名希望さんの書き込み (2006-12-20 11:39) より:

ご指摘の通りにはなりましたが、
今度は、呼び出し元の画面の操作が自由に出来てしまいます


操作できないようにコーディングすれば良いと思いますが... m(r_n)g

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)