2025年3月31日 星期一 乙巳(蛇)年 正月初一 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

使用Python 3.5/3.6监听本机任意窗口中的按键操作

时间:12-23来源:作者:点击数:28

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

需要的模块:扩展库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()

程序运行部分结果如图所示:

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门