C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: Processについて


(過去ログ 114 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■67602 / inTopicNo.1)  Processについて
  
□投稿者/ 寿里庵 (8回)-(2013/08/13(Tue) 13:18:28)

分類:[VB.NET/VB2005 以降] 

Processクラスで、同じexeをキックした時に状況に応じて画面を表示したいのですが可能でしょうか?
たとえば、Test.exeの中にForm1とForm2とForm3がある時、
条件1の時は、Form1を表示し、条件2の時は、Form2を表示し、条件3の時は、Form3を表示したいです。

Try
Dim prc As New Process()
Dim si As ProcessStartInfo = prc.StartInfo
si.FileName = "../Test.exe"
si.Arguments = "引数"
prc.Start()

Catch ex As Exception
Return False
End Try

Return True

上記のコーディングで、si.FileName = "../Test.exe"を
si.FileName = "../Test.exe.Form1" に変更してみましたがエラーになりました。

スタートアップが、From1なのでFrom1の中のMyBase.Loadの中で、
条件を実装して、その中で各ホームを呼ぶようにするしか方法はないのでしょうか?


.Netのバージョンは.NET2008
OSは、Win7 です。

お解りの方よろしくお願いします。






引用返信 編集キー/
■67603 / inTopicNo.2)  Re[1]: Processについて
□投稿者/ Hongliang (82回)-(2013/08/13(Tue) 14:03:23)
> スタートアップが、From1なのでFrom1の中のMyBase.Loadの中で、
> 条件を実装して、その中で各ホームを呼ぶようにするしか方法はないのでしょうか?
はい。
ただしLoadではなく、Mainメソッドを定義してApplication.Run(Form)に渡すFormを変更するようにすべきですが。
検索ワード:VB2008 Mainメソッド
引用返信 編集キー/
■67604 / inTopicNo.3)  Re[1]: Processについて
□投稿者/ 魔界の仮面弁士 (307回)-(2013/08/13(Tue) 14:09:54)
No67602 (寿里庵 さん) に返信
> Processクラスで、同じexeをキックした時に状況に応じて画面を表示したいのですが可能でしょうか?

呼び出される exe 側が、コマンドライン引数に応じて
表示する画面を切り替えるようにするという手はありますが、
ここでいう「同じ exe」というのは、自分自身を呼び出すという意味でしょうか?

だとすれば、別 Process 起動するまでもなく、該当 Form を表示するだけで済みそうです。


> si.FileName = "../Test.exe"
自分自身の exe ではなく、親フォルダにある Test.exe を起動するのでしょうか。
パスの区切りは、「/」ではなく「\」を使った方が良いですよ。


> si.Arguments = "引数"
この引数が「条件」だとして、Test.exe 側はその引数を
どのように処理するように作りこんでいますか?


> si.FileName = "../Test.exe.Form1" に変更してみましたがエラーになりました。
そういう名前のファイルを配置しているのですか?


> スタートアップが、From1なのでFrom1の中のMyBase.Loadの中で、
> 条件を実装して、その中で各ホームを呼ぶようにするしか方法はないのでしょうか?
ここでいうホーム(home)というのは、「状況に応じた画面」のことでしょうか?

Form1(≠From1) がロードされた後で、Form1 以外を表示させようというのでは遅いので、
スタートアップを Main に変更した上で、その中で目的の画面を Application.Run で
表示させるようにしましょう。


スタートアップを Main に切り替えるには、下記のように設定します。
http://www.atmarkit.co.jp/fdotnet/dotnettips/524vb2005main/vb2005main.html
http://dobon.net/vb/dotnet/programing/makeentrypoint.html


また、引数の取得方法は下記が参考になるかと思います。
http://www.atmarkit.co.jp/fdotnet/dotnettips/030cmdargs/cmdargs.html
http://dobon.net/vb/dotnet/programing/commandline.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -