安装

pyhook在窗口标题为中文时会报错,必须安装pyhook3。

pip install pyhook3

可能存在以下问题:

  1. swig.exe不存在:
    http://www.swig.org/download.html
    下载解压,并将目录添加到环境变量中
  2. 提示缺少VC++ 14.0:
    Visual C++ Build Tools 2015
    下载安装,按默认值即可
  3. cl.exe不存在
    打开 C:\Program Files (x86)\Microsoft Visual C++ Build Tools\Visual C++ 2015 x86 x64 Cross Build Tools Command Prompt.lnk 然后在其中运行pip安装命令

监听键盘

使用pynput监听:

from pynput.keyboard import Key, Listener, Controller
import time
from threading import Lock, Thread
import randomlock = Lock()
abilities = set()
hot_keys = {Key.f1: 'q',Key.f2: 'w',Key.f3: 'e',Key.f4: 'r'
}
keyboard = Controller()def cast_ability():while True:time.sleep(0.001)bak = list(abilities)random.shuffle(bak)for ability in bak:time.sleep(random.uniform(0.05, 0.1))keyboard.press(ability)keyboard.release(ability)def toggle_ability_status(key):if key in hot_keys:ability = hot_keys[key]with lock:if ability in abilities:abilities.remove(ability)else:abilities.add(ability)threads = [Thread(target=cast_ability), Listener(on_press=toggle_ability_status)]
for listener in threads:listener.start()
for listener in threads:listener.join()

使用PyHook3监听

import pythoncom
import PyHook3
from pynput.keyboard import Controller
import time
from threading import Lock, Thread
import randomlock = Lock()
abilities = set()
hot_keys = {'F1': 'q','F2': 'w','F3': 'e','F4': 'r'
}
keyboard = Controller()def cast_ability():while True:time.sleep(0.001)bak = list(abilities)random.shuffle(bak)for ability in bak:time.sleep(random.uniform(0.05, 0.1))keyboard.press(ability)keyboard.release(ability)def toggle_ability_status(event):key = event.Keyif key in hot_keys:print(key)ability = hot_keys[key]with lock:if ability in abilities:abilities.remove(ability)else:abilities.add(ability)return Truehm = PyHook3.HookManager()
hm.KeyDown = toggle_ability_status
hm.HookKeyboard()
Thread(target=cast_ability).start()
pythoncom.PumpMessages()

使用pyhook3/pynput实现键盘连发相关推荐

  1. pynput模块—键盘鼠标操作和监听

    pynput.mouse:包含控制和监控鼠标或者触摸板的类. pynput.keyboard:包含控制和监控键盘的类. 上面提到的子包都已被引入到pynput库中.要使用上面的子包,从pynput中引 ...

  2. python pynput鼠标键盘监控(详细)第2部键盘监控tcy

    1.类键盘监听实现   """1.作者:tcy 写于上海叶榭.2018/8/30    2.用途:实时监听键盘,可用来启停程序,键盘中断.            如输入s ...

  3. Tkinter键盘敲击监听小工具

    Tkinter键盘敲击监听小工具 1. 用到的库 tkinter # Python自带的GUI库 pynput # 具有键盘监听和控制功能的库 2. 代码 import threading impor ...

  4. Python使用pynput制作GTA5地堡自动挂机程序

    0.起因(刚编的故事) 最近GTA5刚解锁了地堡,可是生产货物必须得在线才可以,而且得有动作,不然就会被认为发呆踹下线,但升级了安保系统后就可以看监控,但手动按键盘太枯燥,写个脚本帮你自动按键,这样就 ...

  5. Python真神奇,带你体验另类的“全自动编程”

    近年来"自动编程"."智能编程"方面的项目层出不穷,例如AutoML.kite,以及最近风靡一时的python_autocomplete,这些项目有一个共同点, ...

  6. python控制台动画_Python真神奇,带你体验另类的“全自动编程”

    近年来"自动编程"."智能编程"方面的项目层出不穷,例如AutoML.kite,以及最近风靡一时的python_autocomplete,这些项目有一个共同点, ...

  7. [terminal]终端仿真程序

    1 char * szCommAry[COMM_NUM]={ 2 //屏幕属性命令,23 3 "\x1b[12h",//禁止本端回显,键盘数据仅送给主机 4 "\x1b[ ...

  8. Python:一个闹钟

    之前我做的程序,一个使用了Tkinter库,一个则是Pygame,总之都是带有图形化的界面的.但作为一个懒汉,我自然能懒必懒(这点我非常有自知之明),这次,我就来一个简单朴素的没有图形界面的程序. 这 ...

  9. Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported [已解决]...

    原文链接: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported [已解 ...

最新文章

  1. MASQUERADE --random 端口不随机
  2. 【转载】视频CDN技术原理与流程说明
  3. 城市规划理论1 选址理论
  4. C++ 动态创建按钮及 按钮的消息响应
  5. Swift快速入门(一)第一个Swift程序
  6. 数值计算与优化(共轭梯度法和QR)
  7. php删除记录图片吗,php 删除记录同时删除图片文件的实现代码_PHP教程
  8. 漫画:什么是流行病的 R0 和 R ?
  9. 变量的命名规则与惯例
  10. centos-5.5安装vmvare tools
  11. 蓝天采集器:一个开源的PHP爬虫系统,可视化的采集器
  12. USB PD快充协议
  13. 华三交换机升级的ipe文件_H3C S5830V2[S5820V2]系列以太网交换机 配置指导-Release 2108-6W101...
  14. 从新一期技术雷达看技术领域最新趋势
  15. 利用人脸微笑数据集训练识别模型,完成对人脸图片微笑识别
  16. vue使用组件化思想实现一个简单的购物车页面
  17. iptables禁止访问某个域名
  18. Mac Xnip 截图软件快捷键设置
  19. 指针进阶·八道笔试题(四)
  20. uniapp使用第三方文字,本地文字

热门文章

  1. 浏览器——主页修改及恢复方法
  2. 涛酱和策策的游戏again(by良心出题人wzc)(思维+状压dp)
  3. ug仿真导出动画时怎么把时间和步进的图标隐藏
  4. 海上计算距离为什么用海里,而不用公里?
  5. python与scratch哪个好_对于儿童来说,Scratch和Python哪个语言更锻炼思维能力
  6. 2022最新Java高级程序员架构师面试题及答案
  7. OpenCV学习笔记(七)——图像梯度及边缘检测
  8. 电赛知识点总结13:锁定放大器
  9. 海贼王为什么画风突变_突变对象时控制台中会记录什么
  10. 5000台机器的网吧配置