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

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

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

Re[4]: VB.NETで別exeを起動する際にインスタンスを引数に設定


(過去ログ 94 を表示中)

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

■55986 / inTopicNo.1)  VB.NETで別exeを起動する際にインスタンスを引数に設定
  
□投稿者/ ヤヒロ (1回)-(2010/12/21(Tue) 19:19:39)

分類:[.NET 全般] 

開発言語:Visual Basic 2008
開発OS:Windows XP

現在、Vb.Netで作成したexeを作成し、Vb.Netで作成した別のexeを起動するプログラムを作成しています。
別exeを起動する際に、自作クラスのインスタンスを引数として渡したいのですが、
何か良い方法がございますでしょうか?

コンストラクタ(Sub New)に自作クラスを引数設定してみたりしたのですが、
私の知識だけでは解決まで至りませんでした。
インスタンスをXMLファイルへ出力しようとも考えましたが、
インスタンスのデータ量が多いため、XMLファイル出力に時間がかかり断念しました。

恐れ入りますが、皆さんのお力添えをよろしくお願いいたします。

引用返信 編集キー/
■55987 / inTopicNo.2)  Re[1]: VB.NETで別exeを起動する際にインスタンスを引数に設定
□投稿者/ todo (77回)-(2010/12/21(Tue) 19:59:36)
> 現在、Vb.Netで作成したexeを作成し、Vb.Netで作成した別のexeを起動するプログラムを作成しています。

同一ソリューションで開発しているのでしょうか?
前者のプロジェクトからから後者のプロジェクトを「プロジェクト参照」すれば、簡単に後者プロジェクト内のフォームを起動できます。
もちろんコンストラクタでインスタンスを渡すことも出来ます。
引用返信 編集キー/
■55993 / inTopicNo.3)  Re[2]: VB.NETで別exeを起動する際にインスタンスを引数に設定
□投稿者/ ヤヒロ (2回)-(2010/12/21(Tue) 22:37:36)
No55987 (todo さん) に返信
>>現在、Vb.Netで作成したexeを作成し、Vb.Netで作成した別のexeを起動するプログラムを作成しています。
>
> 同一ソリューションで開発しているのでしょうか?
> 前者のプロジェクトからから後者のプロジェクトを「プロジェクト参照」すれば、簡単に後者プロジェクト内のフォームを起動できます。
> もちろんコンストラクタでインスタンスを渡すことも出来ます。

間違いやすい記述をしてしまい、申し訳ありません。

Vb.Netで作成したexeから、Vb.Netで作成した別のexeを起動するプログラムを作成しており、
別exeを起動する際に、自作クラスのインスタンスを引数として渡したいです。
別のexe(プロセス)で、プロセス間のデータのやり取りを行うことが最終目標となります。
恐れ入りますが、ご教授願います。


引用返信 編集キー/
■55994 / inTopicNo.4)  Re[3]: VB.NETで別exeを起動する際にインスタンスを引数に設定
□投稿者/ やじゅ (1794回)-(2010/12/21(Tue) 23:04:51)
やじゅ さんの Web サイト
No55993 (ヤヒロ さん) に返信
> 別exeを起動する際に、自作クラスのインスタンスを引数として渡したいです。
> 別のexe(プロセス)で、プロセス間のデータのやり取りを行うことが最終目標となります。

WM_COPYDATAを使ってみてはどうでしょうか
http://www.geocities.co.jp/hatanero/sendmessage2.html
引用返信 編集キー/
■55995 / inTopicNo.5)  Re[3]: VB.NETで別exeを起動する際にインスタンスを引数に設定
□投稿者/ Azulean (661回)-(2010/12/21(Tue) 23:09:44)
No55993 (ヤヒロ さん) に返信
> 別のexe(プロセス)で、プロセス間のデータのやり取りを行うことが最終目標となります。
> 恐れ入りますが、ご教授願います。

.NET Remoting とか、WCF とか、その手のことでしょうか。
これらを使うにしても満たすべき前提はいろいろとあるので、本当にプロセス間でクラスのインスタンスのやりとりが必要なのか考えてみてください。
(単に持っているデータを書き出して、起動後のプロセスが読み取って復元するだけで良いとか)
引用返信 編集キー/
■55997 / inTopicNo.6)  Re[3]: VB.NETで別exeを起動する際にインスタンスを引数に設定
□投稿者/ shu (313回)-(2010/12/21(Tue) 23:50:53)
No55993 (ヤヒロ さん) に返信

プロセス間通信については出ているので他の方法で。

やりとりするデータ量が多いという事ならローカルDBを使用するというのも1つの手かと思います。
渡すだけでよいならxmlにこだわらず自分で扱いやすいファイル形式を使用するという方法もあります。
引用返信 編集キー/
■56002 / inTopicNo.7)  Re[4]: VB.NETで別exeを起動する際にインスタンスを引数に設定
□投稿者/ todo (78回)-(2010/12/22(Wed) 11:31:12)
> 別のexe(プロセス)で、プロセス間のデータのやり取りを行うことが最終目標となります。

別プロセスであれば、インスタンスを直接渡す手段はありません。

ファイル渡し
共有メモリ
WM_COPYDATA
.NET Remoting
WCF

など、色々な方法がありますが、何れにしろインスタンスをシリアライズ/デシリアライズして渡すことになります。

別EXEを同一プロセス/別スレッドで動かすのは駄目ですか?
例えば、別EXEを動的にアセンブリロードしてBackgroundWorkerで動かすとか。
この場合は、スレッドセーフなクラスであれば共有できます。

引用返信 編集キー/
■56004 / inTopicNo.8)  Re[4]: VB.NETで別exeを起動する際にインスタンスを引数に設定
□投稿者/ ヤヒロ (4回)-(2010/12/22(Wed) 11:36:08)
貴重なご意見ありがとうございます。
皆さんのご意見を参考にインターネットで調査したところ、
以下ページに.NET Frameworkのプロセス間通信方法が載っておりました。

 http://msdn.microsoft.com/ja-jp/events/dd252959.aspx

サイトを参考にプロセス間通信を実装したところ、正常にインスタンスが
exe間で受け渡しできる事を確認しました。

.NETは本当に便利なものですね。
色々な機能があるので、早く機能を熟知できるようにしたいです。

皆さん本当にありがとうございました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -