相关疑难解决方法(0)

python中的关键监听器?

有没有办法在python中做一些关键的监听器而没有一个巨大的膨胀模块,比如pygame

一个例子是,当我按下a键时,它会打印到控制台

一键被按下了!

它还应该监听箭头键/空格键/ shift键.

python keylistener

29
推荐指数
5
解决办法
7万
查看次数

当钩子连接到某些应用程序时,pythoncom在KeyDown上崩溃

我写了这段代码来观察keydown动作的事件.问题似乎是,当运行此脚本时,某些程序将使此程序崩溃,并吐出此错误消息:

TypeError: KeyboardSwitch() missing 8 required positional arguments: 'msg', 'vk_
code', 'scan_code', 'ascii', 'flags', 'time', 'hwnd', and 'win_name'
Run Code Online (Sandbox Code Playgroud)

一些被发现崩溃的程序是:Skype,Sublime Text 2

在调试它的几次试验之后,问题似乎发生在最后一行,但我似乎无法缩小范围.我也不明白编译器返回的KeyboardSwitch()的含义......

我还发现程序会交替返回此错误消息

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pyHook\HookManager.py", line 351, in KeyboardSwitch
    return func(event)
  File "observe.py", line 6, in OnKeyboardEvent
    print ('MessageName:',event.MessageName)
TypeError: an integer is required (got type NoneType)
Run Code Online (Sandbox Code Playgroud)

原因是什么以及如何解决这个问题,特别是因为它只出现在按下的两个键中

import pyHook, pythoncom

def OnKeyboardEvent(event):
# Source: http://code.activestate.com/recipes/553270-using-pyhook-to-block-windows-keys/ 
    print ('MessageName:',event.MessageName)
    print ('Message:',event.Message)
    print ('Time:',event.Time)
    print ('Window:',event.Window)
    print ('WindowName:',event.WindowName)
    print ('Ascii:', event.Ascii, chr(event.Ascii))
    print ('Key:', event.Key)
    print ('KeyID:', …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pythoncom pyhook

11
推荐指数
2
解决办法
5859
查看次数

标签 统计

python ×2

keylistener ×1

pyhook ×1

python-3.x ×1

pythoncom ×1