為什麼在攔截方向鍵總是有問題, 先前修改一些從網路抓下來的code還是不行, 有誰試過??
我
啊~~~我在WndProc下中斷點攔截, 可是未見執行到中斷點, why?? 可否賜教..感激
總要show一下你的程式吧 WndProc的寫法又不是只有一種 誰會知道問題在哪裡呢 參考以下 http://www.hosp.ncku.edu.tw/~cww/html/hook.html 如何攔截鍵盤輸入 這篇文章 修改一下MyKBHFunc這個函數 Public Function MyKBHFunc(ByVal iCode As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long '這三個參數是固定的,不能動,而MyKBHFunc這個名稱只要和 'SetWindowsHookex()中 AddressOf後的名稱一樣便可,不一定叫什麼 'wParam 是傳入按了哪個key的virtual-key code '如果您將以下的兩行unmark則所有鍵盤的輸入皆沒有作用 'MyKBHFunc = 1 '吃掉訊息 'Exit Function MyKBHFunc = 0 '訊息要處理 If iCode < 0 Then MyKBHFunc = CallNextHookEx(hnexthookproc, iCode, wParam, lParam) Exit Function End If If wParam = vbKeyup Then '如果不想吃掉上鍵 把下面這行拿掉 MyKBHFunc = 1 '在這個Hook便吃掉這個訊息 Debug.Print "Press Up" else if wparam=vbkeydown then Debug.Print "Press Up" else if wparam=vbkeyleft then Debug.Print "Press Left" else if wparam=vbkeyright then Debug.Print "Press Right" Else Call CallNextHookEx(hnexthookproc, iCode, wParam, lParam) End If End Function 然後看Debug視窗的輸出 就可以知道按下哪些鍵了 而且是在任何程式中 不僅限於你的Form中
更正 是在同行程的任何視窗中 而不是在任何程式中 如果要是任何程式中請參考 KeyBoard Key in的習慣分析(JournalRecord Hook) 這篇文章
試試先! 謝啦!!^^