2010-02-02 74 views
1

我想在此代碼發送重複的消息到編輯框窗口中鍵入消息:如何發送通過WM_KEYBOARD_LL鉤子程序

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); 
} 

我需要爲標記代碼「案例2」的幫助。

感謝您的閱讀。

+0

其中是SendMessageW(ghServerWnd,wParam,lParam,0);功能? – jjj 2010-02-02 05:18:09

回答

0

好吧,我並不感到驚訝案例2不起作用。作爲wParam發送KBDLLHOOKSTRUCT。

我會想。

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

會工作得更好(雖然我不是100%相信我的LPARAM是完整的)。

相關問題