RegisterMessage
为选定窗口和后代范围的单个Windows消息类型订阅回调。
语法:hook.RegisterMessage ParentHWND , Mode , MessageType , Callback
- hook
- 必需 一个IGetMessageHook实例,通常由RuntimeCreateGetMessageHook返回。
- ParentHWND
- 必需 LongPtr。订阅锚定的窗口。
- Mode
- 必需 EnumDescendantsModeFlags。后代范围:仅精确窗口、所有后代或仅直接子级。
- MessageType
- 必需 Integer。要订阅的Windows
WM_*消息标识符。每次调用订阅一种类型;重复调用RegisterMessage可监听多种消息。 - Callback
- 必需 GetMessageHookHelper.GetMessageHandler。接收匹配消息的函数。传递
AddressOf一个具有匹配签名的函数。
订阅会被记录,但在钩子上调用Start之前不会开始触发。添加新订阅不会干扰现有订阅。
示例
vb
Const WM_KEYDOWN = &H100
Const WM_CHAR = &H102
Sub HookKeyboard(ByVal h As IGetMessageHook)
h.RegisterMessage Me.hWnd, AllDescendants, WM_KEYDOWN, AddressOf OnKeyDown
h.RegisterMessage Me.hWnd, AllDescendants, WM_CHAR, AddressOf OnChar
h.Start
End Sub