求助钓子函数SetWindowsHookEx中的WH_JOURNALPLAYBACK功能实现模拟按键
本人近日想开发一个键盘按键模拟软件.因大部分api功能都给游戏封锁掉.后发现使用钓子函数SetWindowsHookEx中的WH_JOURNALPLAYBACK功能有效实现模拟,但苦于对eventesg结构认识不深,没法有效控制按键的输出.网上找来的例子大多数是讲键盘鼠标的录制的,本人并非要实现这种功能,而是通过SetWindowsHookEx中的WH_JOURNALPLAYBACK功能实现按一个键,如:字母A等.,请高手指教,最好能附上例程. --------------------编程问答-------------------- keybord_event 不是可以模拟吗? --------------------编程问答-------------------- 早给封了,包括sendmessage,postmessage,winio,key_event --------------------编程问答-------------------- Public Function NewWindowProc(ByVal hw As Long, ByVal uMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Dim lpPrevWndProc As Long
Dim pcount As Long
Dim rvdata As data_record
Dim mess(1 To 1024) As Byte
Dim result As Long
If uMsg = (WM_USER + 103) Then
''''''''''''''''''''''''''''信息需要改动,这里是处理
'下面是释放
Else
'将消息传递给原来的处理函数,这一行代码是必须的,否则其它消息无法处理
NewWindowProc = CallWindowProc(OldWindow, hw, uMsg, wParam, lParam)
end sub
'diao yong
Public Sub Hook(ByVal hwnd As Long)
Dim pOld As Long
Dim temp As Long
'指定自定义的窗口过程
OldWindow = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf NewWindowProc)
End Sub
'chufa
sub vitual_click()
Hook (MainForm.hwnd)
end sub
'tuichu
Public Sub Unhook(ByVal hwnd As Long)
Dim temp As Long
'Cease subclassing.
temp = SetWindowLong(hwnd, GWL_WNDPROC, OldWindow)
End Sub
'end
Unhook MainForm.hwnd --------------------编程问答-------------------- 谢谢。楼上的指点。我试下行不行。
补充:VB , API