windows消息VB如何模拟按键

2010-4-8 作者:管理员 来源:就爱IT网


  

窗体代码:
Private Sub Form_Load()
Dim hwnd As Long
hwnd = &H307F8 'XXXXX表示记事本编辑框的句柄
PostMessage hwnd, WM_KEYDOWN, VK_A, MakeKeyLparam(VK_A, WM_KEYDOWN) '按下A键
PostMessage hwnd, WM_CHAR, Asc("A"), MakeKeyLparam(VK_A, WM_KEYDOWN) '输入字符A
PostMessage hwnd, WM_UP, VK_A, MakeKeyLparam(VK_A, WM_UP) '释放A键
End Sub
模块代码:
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long

Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_CHAR = &H102
Public Const VK_A = &H41

Function MakeKeyLparam(ByVal VirtualKey As Long, ByVal flag As Long) As Long
Dim s As String
Dim Firstbyte As String 'lparam参数的24-31位
If flag = WM_KEYDOWN Then '如果是按下键
Firstbyte = "00"
Else
Firstbyte = "C0" '如果是释放键
End If
Dim Scancode As Long
'获得键的扫描码
Scancode = MapVirtualKey(VirtualKey, 0)
Dim Secondbyte As String 'lparam参数的16-23位,即虚拟键扫描码
Secondbyte = Right("00" & Hex(Scancode), 2)
s = Firstbyte & Secondbyte & "0001" '0001为lparam参数的0-15位,即发送次数和其它扩展信息
MakeKeyLparam = Val("&H" & s)
End Function


前提你得得到你游戏的句柄 hwnd = &H307F8 '把个307f8改为你游戏的句柄就可以了 Spy.exe这个软件可以抓句柄


(责任编辑:admin)



精华推荐
友情链接:捆钞带 针织牛仔布 太岁-太岁是什么 中国太岁肉灵芝公司 走私车 星星影院 负离子空气净化器价格 榜单网
关于我们 | About Us | 服务条款 | 广告服务 | 商务洽谈 | 公司招聘 | 客服中心 | 版权所有 |
备案号: 冀ICP备09112870号
Copyright © 2007 - 2009 就爱IT网. All Rights Reserved