TC官方合作论坛

 找回密码
 立即注册
查看: 292|回复: 0
打印 上一主题 下一主题

[其他] 灌水 这个怎么弄成C++的

[复制链接]
跳转到指定楼层
楼主
发表于 2013-9-15 12:01:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Option Explicit
Private Declare Function PostMessage Lib "USER32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function MapVirtualKey Lib "USER32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
Private Const WM_CHAR = &H102
'//构造扫描码
Private 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
Public Function PostKeyDown(wHandle As Long, KeyCode As Long) '//发送按键
     PostMessage wHandle, WM_KEYDOWN, KeyCode, MakeKeyLparam(KeyCode, WM_KEYDOWN) '按下某键
End Function
Public Function PostKeyUp(wHandle As Long, KeyCode As Long) '//发送按键
     PostMessage wHandle, WM_KEYUP, KeyCode, MakeKeyLparam(KeyCode, WM_KEYUP)    '释放某键
End Function
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-19 16:38 , Processed in 0.401820 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表