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

  • 网页的设计和制作网站前面提到过,市面上服务商的报价从几百到几十万不等

    网页的设计和制作网站前面提到过,市面上服务商的报价从几百到几十万不等

  • 电脑生产日期怎么查(电脑 生产日期)

    电脑生产日期怎么查(电脑 生产日期)

  • 微博怎么存视频(微博怎么存视频到手机相册)

    微博怎么存视频(微博怎么存视频到手机相册)

  • jdk安装后的子目录有哪些(jdk安装成功后,可以将bin目录)

    jdk安装后的子目录有哪些(jdk安装成功后,可以将bin目录)

  • qq长期不绑定手机号会怎样(qq号不绑定手机号会被系统收回吗)

    qq长期不绑定手机号会怎样(qq号不绑定手机号会被系统收回吗)

  • 腾讯课堂签到有记录吗(腾讯课堂签到有什么好处)

    腾讯课堂签到有记录吗(腾讯课堂签到有什么好处)

  • vivo左右声道在哪(vivo左声道右声道在哪里)

    vivo左右声道在哪(vivo左声道右声道在哪里)

  • 现在的新手机还需要第一次把电用完再充吗(现在的新手机还需要用完电再充吗)

    现在的新手机还需要第一次把电用完再充吗(现在的新手机还需要用完电再充吗)

  • 苹果11全屏壁纸尺寸(苹果13好看的全屏壁纸)

    苹果11全屏壁纸尺寸(苹果13好看的全屏壁纸)

  • 如何确认华为内屏坏了(华为手机怎样检查手机内部)

    如何确认华为内屏坏了(华为手机怎样检查手机内部)

  • tittl00支持电信吗(华为tit-tl00支持电信卡吗)

    tittl00支持电信吗(华为tit-tl00支持电信卡吗)

  • 主机系统特征(主机系统有哪些组成)

    主机系统特征(主机系统有哪些组成)

  • 微信健康码哪里申请(微信健康码哪里申诉)

    微信健康码哪里申请(微信健康码哪里申诉)

  • 小米净化器2s和3的区别 (小米净化器2S和4)

    小米净化器2s和3的区别 (小米净化器2S和4)

  • 苹果11pro首次充电要多久(iphone11pro第一次充电注意事项)

    苹果11pro首次充电要多久(iphone11pro第一次充电注意事项)

  • 1mps网速是多少(网速1mbps是多少g网速)

    1mps网速是多少(网速1mbps是多少g网速)

  • 拼多多在哪看免拼卡(拼多多在哪看免拼机会)

    拼多多在哪看免拼卡(拼多多在哪看免拼机会)

  • vivos1能开空调吗(vivos1手机可以开空调吗)

    vivos1能开空调吗(vivos1手机可以开空调吗)

  • 苹果11没有手写功能吗(苹果11没有手写输入)

    苹果11没有手写功能吗(苹果11没有手写输入)

  • 视频通话中断是什么意思

    视频通话中断是什么意思

  • 微信运动点赞怎么撤回?(微信运动点赞怎么看)

    微信运动点赞怎么撤回?(微信运动点赞怎么看)

  • 小米手环如何检测睡眠(小米手环如何检测运动)

    小米手环如何检测睡眠(小米手环如何检测运动)

  • oppo主板坏了有啥表现(oppo主板坏了会出现什么现象)

    oppo主板坏了有啥表现(oppo主板坏了会出现什么现象)

  • <input> 实现输入框只能输入数字(个人认为最好的)(input输入语句)

    <input> 实现输入框只能输入数字(个人认为最好的)(input输入语句)

  • Docker容器部署及基本使用(docker 容器)

    Docker容器部署及基本使用(docker 容器)

  • python如何读取全部的文件(python读取全部文件)

    python如何读取全部的文件(python读取全部文件)

  • 织梦dedecms自定义表单添加地区联动显示数字解决方法(织梦怎么改网站主页)

    织梦dedecms自定义表单添加地区联动显示数字解决方法(织梦怎么改网站主页)

  • 进项税额转出补交税款
  • 下半年房产税缴纳时间
  • 资产负债表其他应付款包括哪些
  • 补发上年度奖金如何计税
  • 9个点的发票跟6个点区别
  • 减免税款年末有余额吗
  • 预计所有者权益怎么计算
  • 非正常损失计入哪里
  • 权益法下股权投资
  • 公司无收入费用如何做账务处理核算?
  • 期末调汇的会计科目
  • 虚减利润如何进行账务调整?
  • 别人给的发票一直不开
  • 进口货物的关税完税价格不包括
  • 劳务派遣可以开专票吗
  • 税款滞纳金怎么入账
  • 加计扣除需要注意的几大风险点
  • 关于发票入账的会计分录
  • 金税三期定期定额是什么
  • 土地契税及印花税缴纳规定
  • 参加会议属于什么工作类别
  • 进项税和销项税借贷方向
  • 红字信息表跨越可以撤销吗
  • 单位为员工支付医疗费
  • 一般纳税人购买原材料会计分录
  • 采购费用应计入材料采购成本
  • 质量赔偿金 计入什么科目
  • 临时设施是租入还是租入
  • 收到发票如何写摘要
  • windows10怎么设置自启动
  • u盘win10系统安装教程
  • 关于笔记本电脑的文案
  • 按实际成本结转6日和7日的材料采购成本
  • 企业年金在缴费阶段涉及的税种包括
  • 房地产企业增值税扣除土地成本
  • 在anaconda下安装python
  • 如何确定合伙企业的利润
  • vue err
  • 单位收到社保补贴的钱做账
  • 编程主要学什么东西
  • 租金没有发票可以退税吗
  • 哪些费用计入管理费用中
  • 研发费用加计扣除75%还是100%
  • 物流公司增值税发票
  • 小规模销售收入超过500万
  • 零税项目
  • 直接人工费用属于产品成本吗
  • mysql优化常用的几种方法
  • 生产性企业账务处理
  • 支付水费委托收款
  • 建筑工程机械设备租赁属于什么行业
  • 社保退回的款怎么入账
  • 购买二手车后
  • 转让古董收入
  • 外购产品对外捐赠的会计处理方法
  • 费用报销单一张写不完怎样转下一张?
  • 建筑工程老项目开票截止日期
  • 关于幼儿园的会议内容
  • 公允价值的通俗理解
  • 业务招待费包含样品费吗
  • 啥叫合同
  • 安装软件提示windows 无法访问指定设备,路径或文件
  • Linux系统中Squid代理服务器配置全过程解析
  • win8如何查看所有程序
  • qt opengl obj
  • opencv与pil
  • jquery树形菜单
  • 耳机插头怎么拔
  • WinForm中UnityWebPlayer屏蔽右键菜单
  • js中生成随机数
  • jquery1.12.4
  • jquery Deferred 快速解决异步回调的问题
  • js中数组排序sort的用法
  • android简单项目及代码
  • 南京税务局几点上班几点下班
  • 国地税合并公告
  • 国税局登录密码修改
  • 集团收管理费开什么发票
  • 地税征税范围
  • 越南入关要给小费吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设