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

  • 印花税计入税金及附加还是应交税费
  • 价税合计金额怎么算出税额
  • 工会可以现金支付吗
  • 当月开票可以当月缴税吗
  • 电子商务公司开业活动流程
  • 增值税普通发票和专用发票有什么区别
  • 预缴税款什么时候可以手动填写申报表
  • 小规模纳税人收入账务处理
  • 个人独资企业处罚听证的标准
  • 公司采购报销没发票
  • 收到借款确认书模板
  • 支付结算办法主要内容
  • 存货报废应如何记账
  • 报废资产取得的增值税
  • 公司付给职工的工资
  • 营改增操作指引
  • 预交增值税怎么入账
  • 企业关闭股东拿回投资款需要交税吗
  • 代扣代缴税种有几个
  • 消费税的纳税环节可能有
  • 住宿业的配套服务有哪些
  • 财务报表的总投资怎么算
  • 怎么计提所得税费用
  • 未开发的土地被司法查封,自然资源局可以收回吗
  • 合同尾款一般多少
  • smtplib教程
  • 无法访问windows installer服务,没有正确安装
  • bug is
  • 外币债券汇兑损益怎么算
  • wifi万能钥匙密码王
  • 固定资产自行建造的会计处理
  • 个体户何去何从
  • 增值税不允许抵扣计入什么科目
  • 银行手续费未开发票
  • 耕地开垦费应计入哪个会计科目
  • sovies
  • 小规模纳税人的企业所得税税率
  • php发送post请求api
  • 小规模纳税人的条件
  • 斯坦福大学起源
  • umount -l命令
  • php array_key_exists() 与 isset() 的区别
  • 企业销售固定资产房屋都要交什么税
  • wordpress限制ip访问
  • 分公司可以开基本账户吗
  • 劳务费支出计入什么会计科目
  • python tkinter entry用法
  • 帝国cms首页调用显示标题图片代码
  • 银行业的利润率
  • 出租车发票可以重新打印吗
  • 固定资产折旧的账务处理
  • 出租房产怎么交房产税
  • 股票手续费如何计算公式
  • 跨月管理费用多计怎么处理
  • 不满足收入确认条件的会计分录
  • 增值税销项税额抵减账务处理
  • 一个人可以做多个担保人吗
  • 收购发票如何确认成本
  • 退还多余的预收款项的会计分录
  • 制造费用的明细账应当按照什么设置
  • 购买方已认证销售方作废
  • 展厅租赁税率
  • 旅游发票可以报销入什么明细
  • 金蝶软件标准版多少
  • 发票开商品类别可以报销吗
  • 银行卡里的钱怎么转出来
  • mysql 5.7.33安装
  • xp字体无法安装
  • win7系统c盘太满了,如何清理
  • 清理系统休眠文件
  • win10预览版最新
  • 离线安装macos
  • linux无法登陆
  • node linux安装
  • cocos2dx 3.4 lua加密 setXXTEAKeyAndSign
  • perl使用保留字引用什么模块
  • android手机传感器应用程序
  • unity api compatibility level
  • jquery trigger函数执行两次的解决方法
  • 土地使用税征收时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设