200分:WH_KEYBOARD钩子中如何获取MSG?本来WH_GETMESSAGE钩子最符合要求,但在使用中出现了一些很难查找原因
200分:WH_KEYBOARD钩子中如何获取MSG?
本来WH_GETMESSAGE钩子最符合要求,但在使用中出现了一些很难查找原因的问题……
所以转而用WH_KEYBOARD做一些尝试。
但当我获得键盘消息之后,要先检查是不是窗口快捷键,TranslateAccelerator这个API就需要一个MSG结构类型的参数
,结构如下
Private Type MSG
hwnd As Long
time As Long
pt As POINTAPI
wParam As Long
lParam As Long
message As Long
End Type
搜索后发现似乎可以用GetMessage tMSG, m_hwndMain, 0, 0获得,但使用效果一点都不好,比如快捷键,需要按住一会不放才会有反应。
Public Function KBHookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
中的lParam参数似乎是一个
Private Type EVENTMSG
vKey As Long
sKey As Long
flag As Long
time As Long
End Type
结构,因此无法用CopyMemory tMSG, ByVal lParam, Len(tMSG)获取。
无奈,上CSDN请教高人。
谢谢
[解决办法]
WH_KEYBOARD_LL
[解决办法]
路过.....
[解决办法]
