問題タブ [wm-copydata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
518 参照

c++ - COPYDATASTRUCT の lParam を定義する方法は?

だから私はちょっとこれに従った:

https://msdn.microsoft.com/en-us/library/ms649009(v=vs.85).aspx

この:

WM_COPYDATA を使用してプロセス間でデータを送信する

openframeworks アプリケーションと unreal エンジンの間でデータを送信する場合 4. lParam が定義されていないというエラーが発生する理由が見つからないことを除けば、すべて問題ないようです。それはおそらく簡単なことですが、私はそれを行う方法を見つけることができません。

アンリアル エンジン 4 では、(テスト目的で) 10 秒ごとにメッセージを送信するアクターがあります。

一部のコードはまだ少しラフですが、最初に動作させようとしていただけです。

また、openframeworks でメッセージを受信するためのコードも作成しました。これを行う方法が正確にわからなかったので、これを ofApp.cpp の update 関数に追加しました

lParam が定義されていないため、これは機能しません。また、LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) で何かをしようとしました

しかし、私はこれに慣れておらず、使用方法がわかりません。私のエラーはなくなりましたが、メッセージは受信されませんでした...私は次のように使用しましたが、おそらく間違っています:

これを達成するためのヒントはありますか?おそらく本当に単純ですが、明確な情報が見つかりません。ありがとう!

0 投票する
1 に答える
311 参照

c++ - LRESULT をカスタム構造体型にキャストする方法は?

私はsendMessageとを使用replyMessageして、同じラップトップの 2 つのアプリ間で通信します。受信側では、送信者からのメッセージを受信すると、メッセージを返信します。したがって、送信者プロセスでは、MyStructLRESULT にキャストし、これを送信者アプリに返信します。レシーバー側でキャストバックしようとしましたが、これも機能します。

MyStructただし、送信側でこの LRESULT をキャストしようとすると、失敗します。

送信者側で LRESULT をカスタム構造体に変換するにはどうすればよいですか?

ちなみに、整数または浮動小数点数を送信しようとしました。できます。ただし、カスタム struct を使用MyStructすると機能しません。LRESULT のサイズが よりも短いためだと思いMyStructます。この問題を解決するにはどうすればよいですか? LRESULT のサイズは 4、int のサイズも 4 です。

0 投票する
1 に答える
460 参照

java - JNA : COPYDATASTRUCT の正しいマッピング?

私はそれを機能させるのに多くの苦労をしました(win32 APIへの呼び出し:データを保持するためのWM_COPYDATAおよびCOPYDATASTRUCTを使用したSendMessage)。現在、Windows 7コンピューターで機能するため、マッピングが適切かどうか疑問に思っています。私のソリューションの副作用はありませんか?

これが私のコードです:

そして、2 つの例を含む呼び出しコード:

重要なことは、私がネット上で見つけたすべてのものと比較したこのコードです。COPYDATASTRUCT 属性cbData の型が long であることです。intにするとうまくいきません(レガシCアプリのWndProcでデータが正しく受信されない)。DWORD を長い Java タイプにマップするのは正しいですか? NativeLong の方が良いでしょうか?

注意すべきもう 1 つのことは、インスタンス化されたすべての構造体 (myStruct および myDataStruct) に対する Structure.write() への明示的な呼び出しです。SendMessage API を呼び出す前にメモリが空にならないようにするために必要です。普通だと思いますか?または、jna は SendMessage を呼び出す前に自動的に呼び出す必要がありますか?

前もって感謝します。

0 投票する
0 に答える
544 参照

c# - WM_COPYDATA が C# 文字列データを渡さない理由

クラスのオブジェクトをあるプログラムから別のプログラムに渡す必要があります。

これは合格する必要があるクラスです。

CopyDataStruct クラス;

オブジェクトの送信方法;

他のアプリケーションで;

ターゲット アプリケーションで、"string" データ型 ("Test123") 以外のすべてのデータを取得します。「データ」を空白にします。

エラーはありません。両方のアプリケーションが動作します。オブジェクトは転送されますが、文字列変数にはデータがありません。

これについて私を助けてください

0 投票する
1 に答える
118 参照

string - アプリケーション間で文字列を含むレコードを送信する方法

そのため、WM_COPYDATA を使用してアプリケーションが通信できるようにするクラスがあります。

送信者アプリケーション:

受信アプリ:

問題は、 inに変更Name: string[255];するとクラッシュが発生することです。どうすればこれを克服できますか?すべてのレコードを編集して文字列を別のものに変更したくはありません。また、すべての種類のレコードを送信する関数が 1 つ必要です (私の考えでは、オブジェクトは含まれません)。Name: string;TMyRec

EDITED : Remy から提供された回答を使用し、いくつかの調整を行ったので、SendRecord 関数を 1 つだけ使用して任意の種類のレコードを送信できます。

送信者:

0 投票する
0 に答える
448 参照

javascript - hookWindowMessage WM_COPYDATA コールバック パラメータを Electron/NodeJS で JavaScript に変換するにはどうすればよいですか?

C++ アプリケーションは WM_COPYDATA メッセージを送信します。

Electron アプリ アプリケーションでは、JavaScript で WM_COPYDATA メッセージをリッスンします。

メッセージを受け取ると、次のコンソール出力が表示されます。

C++ プログラムから送信された文字列を読み取ることができるように、JavaScript でこれを解釈するにはどうすればよいでしょうか?