位置: 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 泛型方法)

  • 发票没有申报能开票吗
  • 模具费怎么入账
  • 老板的报销分录怎么写
  • 公允价值变动损益属于什么科目
  • 非盈利机构怎么说
  • 2021成品油增值税计算
  • 房产税应由哪方交纳
  • 出口退税会计处理全部流程
  • 甲供材的范围
  • 建筑公司挂靠项目账务怎么做?
  • 企业所得税退税的会计分录怎么做
  • 砂子开票税率
  • 定额发票什么时候失效
  • 农产品收购发票是普票还是专票
  • 出口收入转内销后汇率
  • 集团内部拆借资金
  • 关于抄税的详细介绍
  • 营业外收入不纳税?
  • 联营和合营的区别共同控制
  • 税金及附加是否设二级科目
  • 外企投资应该怎么投资
  • 抄报税失败是怎么回事
  • 车船使用税计缴标准
  • 往来形式的投资款是借款吗
  • 专用发票右上角的数字表示什么
  • 法定代表人的个人债务会执行公司财产么
  • 零星工程实施流程
  • 股东变更交印花税会计分录
  • 差旅费账务处理例子
  • 去年的成本发票怎么做账
  • 高新企业认定条件2019
  • 怎么升级win11正版
  • php数据库分页是怎么实现的
  • 报销租房费用开发票
  • 外籍人员个人所得税政策2023规定
  • 最小的的照片
  • codeigniter 教程
  • php最好的教程
  • 房屋权属转移是什么意思
  • 如何办理车辆购置证变更手续
  • 移动端h5页面适配
  • 前端这点事
  • 拉尔韦橡
  • python结合
  • 增值税发票校验码在哪个位置
  • vue权限控制设计
  • 印花税是1%吗
  • 海关缴款书当月能查到吗
  • 行政单位预算外收入有哪些
  • ps调色的作用
  • 政府给的补偿款怎么做账
  • PostgreSQL中的OID和XID 说明
  • 已经认证尚未抵扣的发票
  • percona-toolkit之pt-kill 杀掉mysql查询或连接的方法
  • 小规模未开票收入超过30万如何申报
  • 扣税8%
  • 收到的稳岗补贴是否需要交税
  • 交租金没有发票怎么办
  • 去年多计提的费用
  • 合同里包括产品和服务吗
  • 客户退货,但不退货
  • 建筑施工企业劳务费怎么入成本
  • 记账凭证的分类及每类的具体含义是什么
  • mac下mysql密码忘记了怎么办
  • win8系统连接网络
  • macos越狱教程
  • 怎么简单快速的拼成魔方六面
  • ubuntu邮箱客户端
  • centos建站教程
  • centos7 swap大小设多少
  • windows10禁用独立显卡
  • Unity3D游戏开发毕业论文
  • 浏览器firefox
  • js如何获取当前页面的url
  • javascript面向对象精要
  • 湖南国家税务局网上电子税务局官网
  • 许昌市民之家有餐厅吗在几楼
  • 2018城镇土地使用税减免政策
  • 财税库银是什么税
  • 如何落实请示汇报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设