5

C++でプロセスから別のプロセスにデータを転送する方法をサイトでチェックしています。SendMessage()メソッドを見つけましたが、バイト配列を取得できないようです。

ここでコンテキストを少し説明するために、別のアプリケーションにデータを送信するアプリケーションがあります。IDが異なるオブジェクトがいくつかあります。受信するアプリは、さまざまなオブジェクトごとにタブを作成します。データを受信して​​いるアプリが閉じている場合、新しいプロセスを開始し、ユーザーにデータを表示します。2回目に送信する場合は、IDを確認して、オブジェクトの1つがすでにあるかどうかを確認する必要があります。ある場合は、オブジェクトを置き換えます。それ以外の場合は、新しいオブジェクトに新しいタブを追加します。

Googleのプロトコルバッファを使用しており、転送とシリアル化のためにバイト配列を処理します。そのため、プロセスから別のプロセスにバイト配列を送信する方法を見つける必要があります。

プロセスのHWNDを取得できましたが、これからどこに進むべきかわかりません。

4

2 に答える 2

3

プロセス間通信は、プラットフォーム固有のものです。Windowsでは、これを行う方法はたくさんあります。このMSDNの記事では、いくつかの方法とその長所、短所、およびユースケースについて説明しています。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx

両方のアプリケーションを制御し、サードパーティアプリケーションのサポートが問題にならない場合は、SendMessage()を介してWM_COPYDATAメッセージを他のプロセスに送信することをお勧めします。

于 2012-11-19T14:14:39.277 に答える
2

SendMessageを使用する場合は、WM_COPYDATAメッセージを使用してデータのブロックを送信できますが、これはオブジェクトではなく、単なるバイトのブロックです。

于 2012-11-19T14:14:57.777 に答える