位置: IT常识 - 正文

python怎么获取键盘监听(python获取值对应的键)

编辑:rootadmin

推荐整理分享python怎么获取键盘监听(python获取值对应的键),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python怎么通过键找值,python怎么获取键盘输入,python怎么获取键盘的按键,python怎么获取键盘的按键,python获取键盘按键键值,python获取键值,python获取键盘按键键值,python怎么获取键盘输入,内容如对您有帮助,希望把文章链接给更多的朋友!

python获取键盘监听的方法是:1、使用“pip install pypiwin32”命令安装pypiwin32;2、用win32con的WH_KEYBOARD_LL属性设置监听系统键盘事件。

python怎么获取键盘监听(python获取值对应的键)

我们可以利用windows提供的api函数来实现对系统键盘事件和鼠标事件的监听,主要利用的是SetWindowsHookEx函数,这个函数可以允许调用者传入一个钩子函数也叫回调函数,当指定的事件发生时,你

传入的函数就会被触发,有些事件是进程级的,有些事件是系统级的,这里我们用WH_KEYBOARD_LL来监听系统键盘事件,用WH_MOUSE_LL来监听鼠标事件,注意不是WH_KEYBOARD,使用WH_KEYBOARD是无法监听到外部

程序的事件的,这个可以在windows官方文档里面看到说明,要用WH_KEYBOARD来监听系统键盘必须写dll去实现。

因为用到了一些宏定义在win32con里面已经有了,所以需要安装一下pypiwin32,当然如果你将这些宏定义写在自己的文件中,那么就不用安装pypiwin32了。

输入:pip install pypiwin32 安装pypiwin32。

#coding=utf-8fromctypesimport*fromctypesimportwintypesimportwin32conSetWindowsHookEx=windll.user32.SetWindowsHookExAUnhookWindowsHookEx=windll.user32.UnhookWindowsHookExCallNextHookEx=windll.user32.CallNextHookExGetMessage=windll.user32.GetMessageAGetModuleHandle=windll.kernel32.GetModuleHandleW#保存键盘钩子函数句柄keyboard_hd=None#保存鼠标钩子函数句柄mouse_hd=NoneclassKBDLLHOOKSTRUCT(Structure):_fields_=[('vkCode',c_int),('scanCode',c_int),('flags',c_int),('time',c_int),('dwExtraInfo',c_uint),('',c_void_p)]classPOINT(Structure):_fields_=[('x',c_long),('y',c_long)]classMSLLHOOKSTRUCT(Structure):_fields_=[('pt',POINT),('hwnd',c_int),('wHitTestCode',c_uint),('dwExtraInfo',c_uint),]defwait_for_msg():msg=wintypes.MSG()GetMessage(msg,0,0,0)defkeyboard_pro(nCode,wParam,lParam):"""函数功能:键盘钩子函数,当有按键按下时此函数被回调"""ifnCode==win32con.HC_ACTION:KBDLLHOOKSTRUCT_p=POINTER(KBDLLHOOKSTRUCT)param=cast(lParam,KBDLLHOOKSTRUCT_p)print(param.contents.vkCode)returnCallNextHookEx(keyboard_hd,nCode,wParam,lParam)defstart_keyboard_hook():"""函数功能:启动键盘监听"""HOOKPROTYPE=CFUNCTYPE(c_int,c_int,c_int,POINTER(c_void_p))pointer=HOOKPROTYPE(keyboard_pro)keyboard_hd=SetWindowsHookEx(win32con.WH_KEYBOARD_LL,pointer,GetModuleHandle(None),0)wait_for_msg()defstop_keyboard_hook():"""函数功能:停止键盘监听"""UnhookWindowsHookEx(keyboard_hd)defmouse_pro(nCode,wParam,lParam):"""函数功能:鼠标钩子函数,当有鼠标事件,此函数被回调"""ifnCode==win32con.HC_ACTION:MSLLHOOKSTRUCT_p=POINTER(MSLLHOOKSTRUCT)param=cast(lParam,MSLLHOOKSTRUCT_p)#鼠标左键点击ifwParam==win32con.WM_LBUTTONDOWN:print("左键点击,坐标:x:%d,y:%d"%(param.contents.pt.x,param.contents.pt.y))elifwParam==win32con.WM_LBUTTONUP:print("左键抬起,坐标:x:%d,y:%d"%(param.contents.pt.x,param.contents.pt.y))elifwParam==win32con.WM_MOUSEMOVE:print("鼠标移动,坐标:x:%d,y:%d"%(param.contents.pt.x,param.contents.pt.y))elifwParam==win32con.WM_RBUTTONDOWN:print("右键点击,坐标:x:%d,y:%d"%(param.contents.pt.x,param.contents.pt.y))elifwParam==win32con.WM_RBUTTONUP:print("右键抬起,坐标:x:%d,y:%d"%(param.contents.pt.x,param.contents.pt.y))returnCallNextHookEx(mouse_hd,nCode,wParam,lParam)defstart_mouse_hook():"""函数功能:启动鼠标监听"""HOOKPROTYPE=CFUNCTYPE(c_int,c_int,c_int,POINTER(c_void_p))pointer=HOOKPROTYPE(mouse_pro)mouse_hd=SetWindowsHookEx(win32con.WH_MOUSE_LL,pointer,GetModuleHandle(None),0)wait_for_msg()defstop_mouse_hook():"""函数功能:停止鼠标监听"""UnhookWindowsHookEx(mouse_hd)

打开一个txt文件,在里面输入文字,

importHookApiif__name__=='__main__':HookApi.start_keyboard_hook()

本文链接地址:https://www.jiuchutong.com/zhishi/304111.html 转载请保留说明!

上一篇:dedecms模板下载中增加dede图集内容图片下载功能(dedecms官网)

下一篇:java泛型算法如何实现(java 泛型方法)

  • 出口退免税管理工作规范2.0
  • 简易计税征收率是多少
  • 研究经费怎么写
  • 没有购销合同的销售额交印花税吗
  • 合并成本是
  • 实收资本资本公积盈余公积均属于投资者投入企业的资本
  • 购买车辆的保险怎么入账
  • 建筑安装企业增值税税负
  • 个人独资企业变更投资人要交税吗
  • 单位缴纳的社保在哪里查询
  • 公司转让注册资金怎么弄
  • 小规模企业所得税会计分录怎么做
  • 小微企业营业外收入税率是多少
  • 商场预付卡是什么意思
  • 经营租赁不动产发票备注栏
  • 没交社保能扣工伤保险吗
  • 核定征收的小微企业企业所得税计算
  • 增值税普通发票几个点
  • 年终奖个税公式 2022
  • 应收票据盘点表是出纳填吗
  • 解决口苦最快的方法
  • 原始股解禁后减持的条件是什么
  • 关于其他应收款账户的说法
  • 没有收入该怎么办
  • php判断https
  • php写post接口
  • 个人所得税扣缴申报啥意思
  • 国地税合并有什么角度写论文
  • mac 快速切换输入法
  • ant-design-vue pro
  • 内部退养如何缴纳个人所得税
  • php redis使用
  • 如何知道是干皮还是油皮
  • 附加税从哪里进去申报
  • 公司给职工买工伤险流程
  • 前端yck
  • 冲减预提成本分录
  • ps调整边缘在哪里快捷键
  • python按行读入
  • java 泛型方法
  • 帝国cms目录
  • 政府奖励需要缴纳增值税吗
  • 卖出回购证券的钱怎么算
  • 企业的日常活动都有哪些
  • 公司食堂开支如何记账
  • phpcms是什么框架
  • centos7.1
  • 房产税的计算器
  • 收到赠送的货物会计分录
  • 企业销售商品满足收入确认条件时,应当
  • SQL Server 2005与sql 2000之间的数据转换方法
  • 资产损失账务处理要求
  • 长期待摊费用怎么算出来的
  • 会计法中单位负责人均指法定代表人
  • 销项100万进项80万交多少税
  • 制造费用包括哪些部门
  • 项目上工人死亡赔偿
  • 小规模纳税人企业所得税税率
  • linux/fs.h
  • win8装不了itunes
  • services.exe修改注册表
  • 360安全卫士中心未完全开启
  • linux命令i
  • linux怎么使用无线网卡
  • windows8无法安装wps
  • js如何获取url
  • egret引擎基础入门
  • material design app
  • node.js实战
  • Node.js中的什么模块是用于处理文件和目录的
  • shell定时删除指定目录下的文件夹
  • WinForm中UnityWebPlayer屏蔽右键菜单
  • python3.9爬取网页教程
  • win10安装python2.7
  • 掌上税务app
  • 婚前买房婚后个人还贷卖房怎么签字
  • 土地增值税鉴证业务的流程
  • 税务局审计整改的信息
  • 贵州省高新区属于哪个县
  • 江苏社保缴费基数是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设