使用Python 3.5/3.6监听本机任意窗口中的按键操作
原理:挂装全局钩子,监听底层键盘消息,然后获取当前窗口标题以及按下的键等信息。
需要的模块:扩展库pyhook_py3k(注意,不要使用pyhook),pywin32。
第一步,安装pywin32,地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32
第二步,下载pyhook_py3k,地址:https://github.com/Answeror/pyhook_py3k
第三步,下载swig.exe,地址:http://www.swig.org/download.html
第四步,解压缩pyhook_py3k,并进行编译,命令:python setup.py build_ext --swig=..\swigwin-3.0.12\swig.exe,可以根据实际情况修改swig.exe的路径,另外本机最好已安装VC2008
第五步,安装编译好的pyhook_py3k,命令:pip install .
最后,编写键盘消息监听程序
from ctypes import *
import pyHook
import pythoncom
def onKeyboardEvent(event):
print('='*30)
# event.WindowName有时候会不好用
# 所以调用底层API喊来获取窗口标题
windowTitle = create_string_buffer(512)
windll.user32.GetWindowTextA(event.Window,
byref(windowTitle),
512)
windowName = windowTitle.value.decode('gbk')
print('当前您正处于"{0}"窗口'.format(windowName))
print('刚刚按下了"{0}"键'.format(chr(event.Ascii)))
return True
# 安装钩子,监听键盘消息
hm = pyHook.HookManager()
hm.KeyDown = onKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
程序运行部分结果如图所示:
使用Python 3.5/3.6监听本机任意窗口中的按键操作相关推荐
- Python中用keyboard库实现监听用户输入
Python中用keyboard库实现监听用户输入 前言 一.keyboard库 二.使用示例 1.引入库 前言 在用Python做一个Selenium网页自动化工具时,发现如果用户提供的数据太多,需 ...
- jquery监听向上向下滑动,滑动执行操作
jquery监听向上向下滑动,滑动执行操作 // 滚动之前 var beforeScrollTop = $(window).scrollTop(); $(window).on("scroll ...
- python获取键盘事件_50-用Python监听鼠标和键盘事件
PyHook是一个基于Python的"钩子"库,主要用于监听当前电脑上鼠标和键盘的事件.这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在W ...
- python文件夹,文件监听工具(pyinotify,watchdog)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 pyinotify库 支持的监控事件 @cvar IN_ACCESS: File was accessed. @type IN_ACCESS: int ...
- 【Python|第39期】监听目录取消文件只读属性
日期:2023年7月17日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海-- 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长:如果有不对的地方,还望各位 ...
- Python 技术篇-利用pyqt5库监听剪切板变动,clipboard.dataChanged.connect()剪切板监听
PyQt5 的 clipboard.dataChanged.connect() 方法可以监听剪切板的变动. from PyQt5.QtWidgets import *app = QApplicatio ...
- python监听键盘输入_Python监听模拟鼠标键盘
1.监听鼠标和键盘的输入 from pynput import keyboard,mouse def on_press(key): print('alphanumeric key {0} presse ...
- python——实现鼠标与键盘监听与事件处理
文章目录 有三种方法 第一种方案 第二种方案 使用opencv实现 第三种方案 使用pyautogui实现 有三种方法 第一种方案 侦听按键 import pynput.keyboard as pk ...
- react 监听组合键_投资组合中需要的5个React项目
react 监听组合键 You've put in the work and now you have a solid understanding of the React library. 您已经完 ...
最新文章
- NanoPi NEO Air使用十四:FrameBuffer的理解和使用
- @query传参_VueRouter之query与params两种传参区别
- 一款java游戏伐木建造_伐木建造模拟器
- android native.js,Android Native与JS通信互调
- 2014.11.12模拟赛【美妙的数字】| vijos1904学姐的幸运数字
- Windows Server 版本信息及支持期 Win10系统各版本服务起止日期。
- C语言学习笔记---字符串转换函数
- IJCAI 2019 | 为推荐系统生成高质量的文本解释:基于互注意力机制的多任务学习模型...
- 印度永久封禁了微信、百度、TikTok 等 59 款中国 App……
- 心情随笔(三):注入新的血液
- struts1和struts2的区别2
- 软考/软件设计师资料真题/软件设计师教程
- 摩西十诫 摩西简介 世界宗教图谱
- SHELL命令 -- 查看显卡型号
- dota英雄技能快捷键大全
- SQL2008 视频教程 SQL Server 2008高级视频教程
- An error occurred.Faithfully yours, nginx
- 酪氨酸激酶、自噬等抗肿瘤抑制剂
- 2017年IT人期末考试卷,能考60分就是自己人!
- 直面中国市场的新挑战,律商风险数据赋能车险智慧决策踏上新征程
热门文章
- 计算工资底薪加提成的java_月工资如何计算我是做服务行业,底薪2200全勤100加提成5 - 找法网(findlaw.cn)...
- mysql主从复制故障处理_MySQL主从复制故障处理一例
- mysql 删除表时外键约束_MySQL删除表的时候忽略外键约束的简单实现
- mysql数据库设计255_MySQL数据库设计规范
- java如何画矩形条和填充_java.awt.Graphics 类的哪个方法可绘制填充矩形?
- android dialogfragment 简单,使用DialogFragment
- 关于腾讯应用管理中心,认领应用
- Android px pt dp sp...
- 基于JAVA+Servlet+JSP+MYSQL的在线答疑系统
- 基于JAVA+SpringMVC+MYSQL的博客系统