0

私は新しいプロセスを開始しています:

process.Start();

私はそれに文字列を渡すことができることを知っています:

process.StartInfo.Arguments = ...

しかし、バイト配列など、いくつかの単純な文字列以上のものを共有したいのですが、どうすればよいですか?

編集:これはClickOnceアプリケーションとしてインストールされるため、ファイルシステムのどこにインストールされるかはわかりません。アンインストール後にファイルが残らないように、できるだけシンプルにしたいと思います。では、このデータはどこに置くのでしょうか?

4

5 に答える 5

3

メモリマップトファイルを見てください。プロセス間でデータを共有できます。

代替手段は、通常のファイル、レジストリ、ソケットを介した通信などです。

于 2012-05-28T17:24:36.727 に答える
2

配列が小さい場合は、base64でエンコードできます。その他のオプションは、データをファイルに保存するか、名前付きパイプを使用することです。

于 2012-05-28T17:24:30.767 に答える
0

バイト配列を適切にエンコードできる場合(base64など)、ターゲットプロセスのstdinをリダイレクトし、それを介してストリーミングできます。

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardinput.aspx

于 2012-05-29T00:33:40.613 に答える
0

匿名パイプを使用することをお勧めします。

匿名パイプは、名前付きパイプよりも機能が少なくて済みますが、必要なオーバーヘッドも少なくなります。匿名パイプを使用して、ローカルコンピューターでのプロセス間通信を容易にすることができます。ネットワークを介した通信に無名パイプを使用することはできません。

于 2012-05-28T17:25:35.240 に答える
0

一時ファイルを作成し、それに必要なすべてのデータを書き込んで、コマンドライン引数として結果ファイル名を送信できます。2番目のアプリケーションが実行されると、ファイルの内容が読み取られて削除されます。

于 2012-05-28T17:59:12.697 に答える