精華區beta Liu 關於我們 聯絡資訊
: 而是在於我不光是要攔截到某個鍵被按下 : 還要依照當時的狀態判斷,是要將該按鍵訊息放回原本的視窗還是要吃掉它 ^^" : (因為有這部份的要求 : 所以我改掉 PostMessage 和本來全部都會 CallNextHookEx 的部份) : 就是這部份會發生很多問題 我就想說我應該也有這個判斷啊…剛剛才發現我貼錯程式了! 我是全部使用 SendMessage,全部由 VB 判斷是否要吃掉。 曾經試過要在 C 裡面判斷,不過那時做不出來… 由 VB 這裡判斷,整個邏輯還單純,我用都好好的,並不會有不穩的情況。 效率上也感覺不出任何影響,人打字的速度再快也比不過電腦處理的速度。 #define MYWM_KEYB_MESSAGE WM_USER + 2 #define EAT_MESSAGE 1 static LRESULT WINAPI KeyboardHook_HookProc(int nCode, WPARAM wParam, LPARAM lParam) { LRESULT lResult; lResult = 0; if (nCode == HC_ACTION) lResult = SendMessage(g_hwndPost, MYWM_KEYB_MESSAGE, wParam, lParam); if (lResult == 0 || nCode < 0) { lResult = CallNextHookEx(g_hhook, nCode, wParam, lParam); return lResult; } return EAT_MESSAGE; } Private Const MYWM_HOTKEY As Long = WM_USER + 2 Private Const EAT_MESSAGE As Long = 1 Private Const NOEAT_MESSAGE As Long = 0 Case MYWM_HOTKEY If RunKeyFunction(wp, lp) Then WndProc = EAT_MESSAGE Else WndProc = NOEAT_MESSAGE End If Exit Function -- ChrisTorng http://groups.msn.com/ChrisTorng ChrisTorng 樣式訊息記錄 V2.1 正式推出 http://groups.msn.com/ChrisTorng/msn6messagelog.msnw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.75.28.114