最近玩上了某款游戏,由于游戏中打怪需要一直按键盘上固定的几个键,时间一长手就会很累,为了解放左手,楼主自行实现了一款按键精灵。
言归正传,本款按键精灵是用python语言实现的,下面介绍一下实现方法:
1.pykeyboard库用来模拟按压键盘的操作
2.pynput库用来监听键盘按压事件
3.threading库用来抛出线程,实现循环按压
4.tkinter库用来实现一个简单的UI界面

介绍一下按键精灵的功能:
1.代码运行后,自动实现键盘按键“1,2,3,4,5,6”的循环按压
2.按“-”键时,暂停循环按压
3.按“+”键时,继续循环按压
4.点击UI界面退出按钮,退出按键精灵

exe文件暂时没有上传,感兴趣的可以自行打包。
代码如下:

from pykeyboard import PyKeyboard
import time, threading
import tkinter as tk
from pynput import keyboard, mousedef on_press(key):try:# print('key {0} pressed'.format(key.char))if key.char is '-':print('"-" press, pause...')a.pause()if key.char is '=':print('"+", continue...')a.resume()except AttributeError:print('key {0} pressed'.format(key))def on_release(bool_value):if bool_value is not True:return bool_valueclass Job(threading.Thread):def __init__(self, *args, **kwargs):super(Job, self).__init__(*args, **kwargs)self.__flag = threading.Event()     self.__flag.set()      self.__running = threading.Event()     self.__running.set()    self.k = PyKeyboard()def key_tap(self, key_value, dur_time):self.k.tap_key(key_value)print('press ' + key_value)time.sleep(dur_time)def run(self):while self.__running.isSet():self.__flag.wait()      # 为True时立即返回, 为False时阻塞直到内部的标识位为True后返回self.key_tap('1', 0.5)self.key_tap('2', 0.5)self.key_tap('3', 0.5)self.key_tap('4', 0.5)self.key_tap('5', 0.5)self.key_tap('6', 0.5)def pause(self):self.__flag.clear()     b2['bg'] = 'Chartreuse'b1['bg'] = 'WhiteSmoke'def resume(self):self.__flag.set()    b1['bg'] = 'Chartreuse'b2['bg'] = 'WhiteSmoke'def stop(self):self.__flag.set()       self.__running.clear()        def exit():a.stop()on_release(False)win.quit()win = tk.Tk()a = Job()
a.start()keyboard_listener=keyboard.Listener(on_press=on_press,on_release=on_release)
keyboard_listener.start()win.title('按键精灵')
win.resizable(width=False, height=False)
win.update()
scnWidth,scnHeight = win.maxsize()
tmpcnf = '%dx%d+%d+%d'%(628, 120, (scnWidth-350)/2, (scnHeight-200)/2)
win.geometry(tmpcnf)b1=tk.Button(win, text='继续', font=('宋体 30 bold'), bg='WhiteSmoke', width=9, height=2, command=a.resume)
b1.grid(row=0, column=0, sticky=tk.W, padx=5, pady=5)
b2=tk.Button(win, text='暂停', font=('宋体 30 bold'), bg='WhiteSmoke',width=9, height=2, command=a.pause)
b2.grid(row=0, column=1, sticky=tk.W, padx=5, pady=5)
b3=tk.Button(win, text='退出', font=('宋体 30 bold'), bg='WhiteSmoke',width=9, height=2, command=exit)
b3.grid(row=0, column=2, sticky=tk.W, padx=5, pady=5)win.mainloop()

功能演示:

程序的创造源于生活中的需求

python实现的按键精灵相关推荐

  1. python做按键精灵脚本_使用Python实现一个按键精灵 | 蓝士钦

    @HANK1998 其实,你这个代码,还有一个问题,鼠标键盘动作回放时,顺序会乱,线程同步问题,做不到鼠标动作和键盘动作交叉执行.,,我能力不太够了,,学的不深,不知道这个问题你解决没??? ---- ...

  2. python 定时器_按键精灵定时器介绍和使用,不会的小伙伴速速看看精辟

    金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚 ...

  3. python 按键精灵脚本_[620]使用Python实现一个按键精灵

    按键精灵想必很多人都玩过,使用录制功能将鼠标和键盘的操作录制下来,录制好后就可以通过回放自动执行之前录制的操作,可以设置重复执行的次数,这样就可以将一些重复的劳动交给脚本自动化去完成.使用Python ...

  4. [620]使用Python实现一个按键精灵

    按键精灵想必很多人都玩过,使用录制功能将鼠标和键盘的操作录制下来,录制好后就可以通过回放自动执行之前录制的操作,可以设置重复执行的次数,这样就可以将一些重复的劳动交给脚本自动化去完成.使用Python ...

  5. python制作自动按键精灵_python,PyAutoGUI,自动操作鼠标键盘,类似按键精灵

    三个文件需在同一个文件夹下面,文件夹的位置无要求. 1.第一个文件,trial.py,python代码调用PyAutoGUI操作鼠标键盘.可以通过修改start_time和end_time来确定程序自 ...

  6. 按键精灵调用python插件_【Python 教程】使用 Python 和大漠插件进行文字识别

    家里有一台win7系统的电脑,平时可以用来玩玩游戏消磨时间.但是有时候有一些重复的操作实在是无趣,所以打算写个脚本,让其自动化执行. 最终的目标就是把游戏里一些常用的操作都集合到脚本中去,且无序随机执 ...

  7. python游戏脚本之调用按键精灵插件模拟输入(二)

    我们准备在python中调用按键精灵的大漠插件来完成模拟驱动的鼠标键盘操作.大漠 综合 插件 (dm.dll)采用vc6.0编写,识别速度超级快! 采用COM接口编写,适用于所有语言调用. 网上相关教 ...

  8. python找色_python实现按键精灵找色点击功能教程,使用pywin32和Pillow库

    Python图片处理模块PIL(pillow) pywin32的主要作用 1.捕获窗口: 2.模拟鼠标键盘动作: 3.自动获取某路径下文件列表: 4.PIL截屏功能 找色点击功能思路: 抓取当前屏幕快 ...

  9. python 按键精灵 离线_(番外篇)Python操纵网盘客户端批量离线下载电影

    上回(Python实现电影排行榜自动网盘下载(4)Cookies免登录+抓包下载)说到,一段时间内能进行多少次离线下载还是受限于验证码的输入. 在此有两个解决方案, 见招拆招 通过GUI优化验证码输入 ...

最新文章

  1. 安全问题会对网络购物季产生负面影响吗
  2. android系统应用程序,Android系统应用程序基本概念解读
  3. 【哈佛商学院和斯坦福要求学生必看的20部电影】中/英字幕
  4. Apache Ignite(五):Ignite的集群部署
  5. 浅谈C#中的异步编程
  6. 舞蹈 | 拉丁美洲的节奏
  7. [NOI2011]兔兔与蛋蛋游戏 二分图博弈
  8. 201452202014520920145309信息安全系统设计基础实验报告(1)
  9. bool查询原理 es_es6.2.4,使用bool查询查出的结果,SearchResponse的Hits[]总是比t..._慕课猿问...
  10. java基础语法的书_第一章--Java基础语法
  11. SQLyog客户端 导入sql文件乱码的解决方法
  12. .NET Remoting Basic(4)-客户端调用方式
  13. Python 实例教程
  14. 带约束优化之惩罚函数法
  15. 18款表白源码,搭建网站必备,总有一款适合你
  16. pathrewrite不生效_webpack配置proxyTable时pathRewrite无效的解决方法
  17. 电子元器件B2B商城系统开发:赋能企业构建进销存标准化流程实例
  18. 关于用python实现Windows笔记本自动切换强信号WiFi功能
  19. 软件测试工程师华为面经
  20. 2016年第8本:不可思议的心理控制实验

热门文章

  1. 基于springboot的智慧养老平台
  2. HTML5 LocalStorage 本地存储,刷新值还在
  3. 如果体内湿气重怎么办
  4. 【堡垒机】堡垒机怎么分类?哪种更好用?
  5. 码云以及Git的使用
  6. 一、WillPHPv2代码审计-[变量覆盖]-[文件包含]-[任意文件读取漏洞]-[pearcmd裸文件包含]
  7. python 生成器 原理_python 生成器和迭代器的原理解析
  8. vim脚本编辑器的使用
  9. 计算机专业英语自我介绍带注释,计算机专业英语自我介绍
  10. Android 知识点