吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1217|回复: 9
收起左侧

[Python 原创] 解决单个按键连击1.0

[复制链接]
zhaoyuan863 发表于 2024-2-3 19:49
本帖最后由 zhaoyuan863 于 2024-2-3 19:51 编辑

收了一个X220笔记本,本来说好键盘是正常的,结果有个按键有问题,即R键连击。很痛苦,用了几天受不了了,下单新键盘说年前只能顺丰到付。
算了,比较贵,先将就一下,用软件解决一下先吧。

下载了几个软件,但都是全局的,其他按键也受影响,系统自带的也是,想想算了,下载个python自己写一个吧。
代码倒是简单,但是python安装PyHook3这个麻烦的很,还下了VS编译,如果我会VC,我就用VC写了,无奈菜,不会VC……

python写好了后用pyinstaller打包成.exe,7.5M左右,上传不上来,只好把源码打包了,自己用python运行吧。

解决单个按键连击1.0.zip (1.14 KB, 下载次数: 28)


依赖包叫:PyHook3
这个不好安装,自己查教程安装吧。
微信截图_20240203194845.png
预祝新年快乐!



免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
bbs119 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| zhaoyuan863 发表于 2024-2-3 20:02
[Python] 纯文本查看 复制代码
import PyHook3 as pyhook
import pythoncom

def OnKeyboardDown(event):
    global tr1,key_list,ti
    if event.Key in key_list:
        if tr1 ==0:
            tr1=event.Time
            return True
        elif event.Time-tr1<ti:    #100毫秒
            print('连击的按键为:',event.Key)
            return False
        else:
            tr1=0
            return True        
    return True

def main():
    try:  
        hm = pyhook.HookManager()
        hm.KeyDown = OnKeyboardDown          #将OnKeyboardEvent函数绑定到KeyDown事件上
        hm.HookKeyboard()   #设置键盘钩子
        pythoncom.PumpMessages()

    except Exception as err:
        print(err.__repr__())
        input('Error! Any key to Exit. > ')
    finally:
        hm.UnhookMouse()    #取消鼠标钩子
        hm.UnhookKeyboard() #取消键盘钩子

if __name__=="__main__":
    print('2024-02-03')
    tr1=0
    try:
        t=input('间隔时间:(ms),Enter for 100ms. > ')
        ti=int(t)
    except:
        print('Inter Error. Default is 100ms ')
        ti=100 #100毫秒。
    print('间隔时间设置为{}毫秒'.format(ti))
    print('读取连击按键键值,如需修改,请自行修改本程序下的kbm.ini文件,每行一个键符')
    try:
      key_list=[]
      with open('kbm.ini','r',encoding='utf-8')as fr:
        all_lines=fr.readlines()
        for each in all_lines:
          key_list.append(each.strip())
      print('要处理的按键为:',key_list)
      if len(key_list)==0:
        print('文件读取失败,默认处理R键。')
        key_list=['R']
    except Exception as err:
      print(err.__repr__())
      print('文件读取失败,默认处理R键。')
      key_list=['R']
    print('*'*32,'\n程序运行中……')
    main() 
    
 楼主| zhaoyuan863 发表于 2024-2-3 20:05
随手写的代码,比较简单,能用就行,不改了,虽然代码看起来好丑……
bbs119 发表于 2024-2-4 10:19
jokony 发表于 2024-2-4 11:02
我的 ctr 键也坏了,怎么弄? 哈哈
szypptz1qdfp 发表于 2024-2-4 12:04
用python运行?不懂哦,只会伸手···
jstar 发表于 2024-2-4 14:03
厉害了,不知道能不能解决鼠标左键连击的问题了
 楼主| zhaoyuan863 发表于 2024-2-4 21:25
本帖最后由 zhaoyuan863 于 2024-2-4 21:26 编辑
jstar 发表于 2024-2-4 14:03
厉害了,不知道能不能解决鼠标左键连击的问题了

这个应该可以做到。用的是鼠标的钩子。
 楼主| zhaoyuan863 发表于 2024-2-4 21:33
jokony 发表于 2024-2-4 11:02
我的 ctr 键也坏了,怎么弄? 哈哈

在kbm.ini清空内容,如果是左侧ctrl坏了,写:Lcontrol
右侧坏了,写:Rcontrol
 楼主| zhaoyuan863 发表于 2024-2-4 22:17
https://zhaoyuan.lanzn.com/iilb31nctlyb

蓝奏云分享,这个是EXE打包后的,可以直接使用。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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