別のアプリケーションと連携する必要がある WPF アプリケーションがあります。
このアプリケーションには、約 20 個のカスタム Windows メッセージ (WM_USER+50...WM_USER+70) があります。
私が達成しようとしていることの要約:
WPF アプリケーション -> SendMessage -> サードパーティ アプリケーション
私が抱えている問題は、すべてのメッセージがカスタム メッセージであることです。したがって、独自のデータ マーシャリングを実装する必要があります。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspxを参照してください。
私が経験する必要があるプロセスは次のとおりです。
プロセスを取得し、すべてのアクセスに対して開きます。User32.GetWindowThreadProcessId(windowHandle, out pId);
// すべてのアクセスでプロセスを開く
someprocess = OpenProcess((0x1F0FFF), false, (int)pId);プロセスにバッファを割り当てます: IntPtr buffer = VirtualAllocEx( hProcess, IntPtr.Zero, 1024, 0x1000, 0x04 );
#2で作成されたバッファに書き込まれるある種の構造体を埋めますか?
#3 をリモート バッファにコピーするのは #2 ですか? WriteProcessMemory??
カスタム メッセージを送信します ( SendMessage(windowhandle, customMsg, 0, buffer from #2?)
リモート プロセス バッファからローカル バッファに構造体を読み込みます。
このデータをマネージド型にマーシャリングします。(これは C# .Net アプリケーションです)
私は本当にいくつかの洞察を使うことができました。私はこれまであまり運がありませんでした。私が最もこだわっている部分は、どのタイプの構造体を WriteProcessMemory に送信するかということだと思いますか?