原理:挂装全局钩子,监听底层键盘消息,然后获取当前窗口标题以及按下的键等信息。

需要的模块:扩展库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监听本机任意窗口中的按键操作相关推荐

  1. Python中用keyboard库实现监听用户输入

    Python中用keyboard库实现监听用户输入 前言 一.keyboard库 二.使用示例 1.引入库 前言 在用Python做一个Selenium网页自动化工具时,发现如果用户提供的数据太多,需 ...

  2. jquery监听向上向下滑动,滑动执行操作

    jquery监听向上向下滑动,滑动执行操作 // 滚动之前 var beforeScrollTop = $(window).scrollTop(); $(window).on("scroll ...

  3. python获取键盘事件_50-用Python监听鼠标和键盘事件

    PyHook是一个基于Python的"钩子"库,主要用于监听当前电脑上鼠标和键盘的事件.这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在W ...

  4. python文件夹,文件监听工具(pyinotify,watchdog)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 pyinotify库 支持的监控事件 @cvar IN_ACCESS: File was accessed. @type IN_ACCESS: int ...

  5. 【Python|第39期】监听目录取消文件只读属性

    日期:2023年7月17日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海-- 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长:如果有不对的地方,还望各位 ...

  6. Python 技术篇-利用pyqt5库监听剪切板变动,clipboard.dataChanged.connect()剪切板监听

    PyQt5 的 clipboard.dataChanged.connect() 方法可以监听剪切板的变动. from PyQt5.QtWidgets import *app = QApplicatio ...

  7. python监听键盘输入_Python监听模拟鼠标键盘

    1.监听鼠标和键盘的输入 from pynput import keyboard,mouse def on_press(key): print('alphanumeric key {0} presse ...

  8. python——实现鼠标与键盘监听与事件处理

    文章目录 有三种方法 第一种方案 第二种方案 使用opencv实现 第三种方案 使用pyautogui实现 有三种方法 第一种方案 侦听按键 import pynput.keyboard as pk ...

  9. react 监听组合键_投资组合中需要的5个React项目

    react 监听组合键 You've put in the work and now you have a solid understanding of the React library. 您已经完 ...

最新文章

  1. NanoPi NEO Air使用十四:FrameBuffer的理解和使用
  2. @query传参_VueRouter之query与params两种传参区别
  3. 一款java游戏伐木建造_伐木建造模拟器
  4. android native.js,Android Native与JS通信互调
  5. 2014.11.12模拟赛【美妙的数字】| vijos1904学姐的幸运数字
  6. Windows Server 版本信息及支持期 Win10系统各版本服务起止日期。
  7. C语言学习笔记---字符串转换函数
  8. IJCAI 2019 | 为推荐系统生成高质量的文本解释:基于互注意力机制的多任务学习模型...
  9. 印度永久封禁了微信、百度、TikTok 等 59 款中国 App……
  10. 心情随笔(三):注入新的血液
  11. struts1和struts2的区别2
  12. 软考/软件设计师资料真题/软件设计师教程
  13. 摩西十诫 摩西简介 世界宗教图谱
  14. SHELL命令 -- 查看显卡型号
  15. dota英雄技能快捷键大全
  16. SQL2008 视频教程 SQL Server 2008高级视频教程
  17. An error occurred.Faithfully yours, nginx
  18. 酪氨酸激酶、自噬等抗肿瘤抑制剂
  19. 2017年IT人期末考试卷,能考60分就是自己人!
  20. 直面中国市场的新挑战,律商风险数据赋能车险智慧决策踏上新征程

热门文章

  1. 计算工资底薪加提成的java_月工资如何计算我是做服务行业,底薪2200全勤100加提成5 - 找法网(findlaw.cn)...
  2. mysql主从复制故障处理_MySQL主从复制故障处理一例
  3. mysql 删除表时外键约束_MySQL删除表的时候忽略外键约束的简单实现
  4. mysql数据库设计255_MySQL数据库设计规范
  5. java如何画矩形条和填充_java.awt.Graphics 类的哪个方法可绘制填充矩形?
  6. android dialogfragment 简单,使用DialogFragment
  7. 关于腾讯应用管理中心,认领应用
  8. Android px pt dp sp...
  9. 基于JAVA+Servlet+JSP+MYSQL的在线答疑系统
  10. 基于JAVA+SpringMVC+MYSQL的博客系统