python 记录今日学习按键消息心得

文章讲述了通过分析Windows消息中的WM_KEYDOWN和WM_KEYUP事件,检测击键速率,尤其是当重复计数大于1时,推断用户可能使用脚本或低配置电脑的操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要思路:如果击键速率大于程序处理速率 那么在收到按键消息时,会把多个消息组合到单个消息中,那么lParam参数的低16位域指示的重复计数将大于1,此时我们可以知道,要么是使用了低配置电脑,要么是使用了Windows命令,所以由此推断用户是否使用脚本:

case win32con.WM_KEYDOWN:
    #wParam 参数是按键虚拟码
    if debug:
        print("你按下了键盘键,消息编号是:", msg, " ", hex(msg), "wParam的值是:", wParam, "  lParam的值是:", lParam)
    match(wParam):
        case 0x01:  #vk_lbutton
            print("01键盘信息收到按下鼠标键-------------------")
        case win32con.VK_UP:
            print("按下的键盘的向上箭头",hex(win32con.VK_UP))
    print("你按下了键盘键,消息编号是:", msg, " ", hex(msg), "wParam的值是:", wParam,"  ",hex(wParam) ,"  lParam的值是:", lParam,"环境代码:",lParam>>29 & 0x1)
    print(" lParam的值是:", lParam,"先前状态:", lParam >> 30 & 0x1,"转换状态:", lParam >> 31 & 0x1,"重复计数:", lParam & 0xFFFF)
    return 0
case win32con.WM_KEYUP:
    print("你释放键盘键,消息编号是:", msg, " ", hex(msg), "wParam的值是:", wParam, "  ", hex(wParam), "  lParam的值是:", lParam,
          "环境代码:", lParam >> 29 & 0x1)
    print(" lParam的值是:", lParam, "先前状态:", lParam >> 30 & 0x1,"转换状态:", lParam >> 31 & 0x1,"重复计数:", lParam & 0xFFFF)
    return 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值