使用pyhook产生错误的原因,pythoncom

博主遇到在使用pyhook进行键盘监听时出现TypeError错误,提示缺少8个必需参数。推测可能是因为pyhook版本过旧。解决方案是安装更新版本的pyhook3,通过pip直接安装whl文件,并注意在导入时区分大小写,应为PyHook3。同时提到pythoncom模块,指出只要拥有pywin32模块即可。

键盘监听一直报错
TypeError: KeyboardSwitch() missing 8 required positional arguments: ‘msg’, ‘vk_code’, ‘scan_code’, ‘ascii’, ‘flags’, ‘time’, ‘hwnd’, and 'w

我猜测是pyhook的版本太老了

直接下载pyhook3 whl文件,pip install就可以了
这是链接

导入的时候区分大小写PyHook3要不然会导入失败

顺便提一下pythoncom这个是在pywin32里只要有pywin32模块就行

import openpyxl import os import pyHook import pythoncom # 监听到鼠标事件调用 def onMouseEvent(event): if (event.MessageName != "mouse move"): # 因为鼠标一动就会有很多mouse move,所以把这个过滤下 print(event.MessageName) return True # 为True才会正常调用,如果为False的话,此次事件被拦截 # 监听到键盘事件调用 def onKeyboardEvent(event): print(event.Key) # 返回按下的键 return True def main(): # 创建管理器 hm = pyHook.HookManager() # 监听键盘 hm.KeyDown = onKeyboardEvent hm.HookKeyboard() # 监听鼠标 # hm.MouseAll = onMouseEvent # hm.HookMouse() # 循环阻塞监听 pythoncom.PumpMessages() # pythoncom.PumpWaitingMessages() #单次监听,配合while循环,可以方便控制停止 # 检查是否需要终止线程 # if not keyboard_monitor_running: # break if __name__ == "__main__": main() 代码报错C:\Users\2307105076\PythonEnv\Scripts\python.exe E:/SVN/Project_BMS/03_LiXiang/C20250417_LIA_X04C/Trunk/05_Tools/6_CANOE_CAPLTEST/Fast_Charg/182049/Other/2015Plus/temp.py Traceback (most recent call last): File "E:/SVN/Project_BMS/03_LiXiang/C20250417_LIA_X04C/Trunk/05_Tools/6_CANOE_CAPLTEST/Fast_Charg/182049/Other/2015Plus/temp.py", line 4, in <module> import pythoncom File "C:\Users\2307105076\PythonEnv\lib\site-packages\pythoncom.py", line 2, in <module> import pywintypes File "C:\Users\2307105076\PythonEnv\lib\site-packages\win32\lib\pywintypes.py", line 126, in <module> __import_pywin32_system_module__("pywintypes", globals()) File "C:\Users\2307105076\PythonEnv\lib\site-packages\win32\lib\pywintypes.py", line 52, in __import_pywin32_system_module__ import _win32sysloader ImportError: DLL load failed while importing _win32sysloader: 找不到指定的模块。 进程已结束,退出代码为 1
最新发布
06-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值