как отправлять сообщения с помощью процедуры подключения WM_KEYBOARD_LL - PullRequest
1 голос
/ 02 февраля 2010

Я пытаюсь отправить дубликат сообщения в окно редактирования в этом коде:

extern "C" HOOK_DLL_API LRESULT CALLBACK GetMsgHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
     if (nCode < 0)
     {    
          CallNextHookEx(gMsgHook, nCode, wParam, lParam);
     }

     KBDLLHOOKSTRUCT *lpk = (KBDLLHOOKSTRUCT*) lParam;

     ghServerWnd; // ghServerWnd == Edit1. that defined..

     if (wParam == WM_KEYDOWN)
     {
          // case1: this code working.. but, unicode(IME character) no sent;;
          SendMessageW(ghServerWnd, WM_CHAR, (WPARAM)lpk->vkCode, 0);

          // case2: this code - not working.. T_T
          SendMessageW(ghServerWnd, wParam, lParam, 0);
     }
     return CallNextHookEx(gMsgHook, nCode, wParam, lParam);
}

Мне нужна помощь с "case2", как отмечено в коде.

Спасибо за чтение.

1 Ответ

0 голосов
/ 02 февраля 2010

Ну, я не удивлен, случай 2 не работает. Вы отправляете KBDLLHOOKSTRUCT как wParam.

Я бы подумал.

 SendMessage( ghServerWnd, wParam, (WPARAM)lpk->vkCode, (LPARAM)lpk->scanCode );

Будет работать лучше (хотя я не уверен на 100%, что мой LPARAM завершен).

...