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

  • 向个人提供居住证明
  • 企业交的增值税怎么做账
  • 广东税务是什么
  • 累计预扣法计算公式
  • 7月薪资8月发怎么交税
  • 总资产报酬率的公式
  • 银行现金增加会计分录
  • 跨年调整会计科目怎么写
  • 公司的车辆赠送公司
  • 银行收到一笔款可以分开入账吗
  • 无形资产要入账吗
  • 出租厂房的摊销额会计分录
  • 取得增值税专用发票是否可以抵扣
  • 购销合同印花税税率2023
  • 税务局的网站以后有这些变化是你不知道的!
  • 哪些违约金可以退回
  • 活动策划费属于哪一类
  • 软件企业的税收优惠政策
  • 现金流净额为负值说明什么
  • 广告公司 成本
  • 给别人代付
  • qqpcrtp.exe是什么进程 如何删除qqpcrtp进程
  • windows10你需要trustedinstaller提供的权限才能更改
  • php支付接口开发
  • 工商年报网上申报时间2023年
  • 破产资产拍卖
  • win7旗舰系统
  • 为什么生产工人还要求本科
  • 企业股权转让所得可以弥补亏损吗
  • yolov3训练
  • vue修改表格数据
  • 贷款的减值会计怎么做账
  • 土地使用税计入管理费用还是税金及附加
  • Gumbel-Softmax完全解析
  • 埃菲尔铁塔翻绳的方法
  • chatGPT身份指令
  • yolov3 pytorch详解
  • 贷款和应收款项属于金融资产吗
  • 企业自行清算的条件是什么
  • 网络购发票怎么读入
  • 公司未成立前的花费算出资额吗
  • 单一窗口报关是指什么
  • 发票超额怎么办
  • 发票丢失了怎么报销
  • 用房子贷款印花税怎么算
  • 成本票和进项票举例说明
  • 为什么开票需要提供开户许可证
  • mysql5.7版本安装教程
  • 母公司兼并子公司怎么办
  • 外购商品用于宣传需要缴纳增值税吗
  • 现金日记账怎么填
  • 税金及附加需不需要计提
  • 企业选择的短期调整
  • 企业重组后的债权怎么处理
  • 软件增值税即征即退税务风险
  • 关税进口增值税缴纳时间
  • 原材料转固定资产账务处理
  • 先进先出法实际成本跟成本不一样吗
  • 资产减值准则规范
  • 担保贷款中的特殊形式
  • 投资方持有的能够对被投资单位实施
  • sql server怎么修改表中数据
  • 最新mysql数据库安装步骤
  • ubuntu右键菜单
  • 微软在印度的投资
  • 生产环境如何对linux进行合理分区
  • Win7系统打开设备和打印机里面什么都没有
  • linux 匹配字符
  • centos 网络监控
  • w7改w10硬盘怎么设置
  • ubuntu20 配置静态ip
  • linux进程和线程底层实现原理一样吗
  • printnow.exe - printnow是什么进程 有什么作用
  • gcuservice.exe
  • suse linux 12 sp5
  • dos命令怎么写
  • android基于
  • 咨询服务类公司的账务处理
  • 营改增后土地增值税
  • 税务局工会
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设