1

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

typedef struct tagNotificationStruct {
    char msg[255];
} NotificationStruct;

void __stdcall LogMessageWrite()
{
    const char* pszMessage = "Test 1 2 3";

    NotificationStruct notification;
    strcpy(notification.msg, pszMessage);

    COPYDATASTRUCT copyDataStruct;
    copyDataStruct.dwData = 73; // random identification number
    copyDataStruct.cbData = sizeof(NotificationStruct);
    copyDataStruct.lpData = &notification;

    string text = "my window title";
    wchar_t wtext[15];
    mbstowcs(wtext, text.c_str(), text.length());
    LPWSTR ptr = wtext;
    HWND hwDispatch = FindWindow(NULL, ptr);

    if (hwDispatch != NULL) {
        SendMessage(hwDispatch, WM_COPYDATA, NULL, (LPARAM)(LPVOID)& copyDataStruct);
    }
}

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

browserWindow.hookWindowMessage(0x4A /* = WM_COPYDATA */, (wParam, lParam) => {
                console.log('wParam = ', wParam);
                console.log('lParam = ', lParam);
            });

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

wParam =  <Buffer@0x0000018C305F7160 00 00 00 00 00 00 00 00>
lParam =  <Buffer@0x0000018C305F6EC0 a0 f2 cf 42 8a 00 00 00>

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

4

0 に答える 0