使用Python 3.5/3.6监听本机任意窗口中的按键操作
2017-04-18 11:30
323 查看
原理:挂装全局钩子,监听底层键盘消息,然后获取当前窗口标题以及按下的键等信息。
需要的模块:扩展库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()
程序运行部分结果如图所示:
需要的模块:扩展库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()
程序运行部分结果如图所示:
相关文章推荐
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
- CentOS 7安装Python 3.5/python 3.6,同时使用python 3和python 2
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
- 使用python操作串口
- Adobe AIR迷你教程 — 使用自定义窗口以及对窗口的移动,缩放,关闭操作
- 使用VC6.0实现窗口的任意分割
- 使用Python的Command Line操作Excel的Macro
- asp.net中窗口相关操作(如何使用javascript) (转)
- MySQLdb for Python使用指南/Python的数据库操作
- 线程池的使用实现窗口控件安全操作
- 使用VC6.0实现窗口的任意分割
- MySQLdb for Python使用指南/Python的数据库操作
- 使用 python 操作 access 数据库
- 使用VC6.0实现窗口的任意分割
- 使用Python操作注册表
- 使用自定义窗口以及对窗口的移动,缩放,关闭操作
- 使用python操作excel
- 使用VC6.0实现窗口的任意分割
- 使用VC6.0实现窗口的任意分割
- 使用VC6.0实现窗口的任意分割