2024-06-11 07:34:28 发布
网友
真的是个问题。基于pyHook's tutorial,函数中的.HookManager().OnMouseEvent事件变量具有.Injected属性。我找不到任何信息吗?我试过了
event.Injected = '<char to inject>'
但没用。在
免责声明:我不是这方面的专家, 我只是分享我对tutorial和{a2}的观察, 希望能有所帮助。在
event上的属性不是供您手动设置的, 但是你的事件处理程序可以阅读和操作。在
event
正如您在KeyboardEvent和MouseEvent的文档中看到的那样, Injected实例变量的目的是检查事件是否以编程方式生成。 我认为,这意味着您的处理程序从鼠标和键盘活动接收到的事件将始终具有此变量False。 有一种方法可以通过编程生成事件, 想象一下我测试你的处理者的目的。 方法似乎是HookManager.KeyboardSwitch和{a6}。在
Injected
False
试试这个例子。创建一个简单的程序来查看一些实际键盘事件的详细信息:
import pythoncom, pyHook def OnKeyboardEvent(event): 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:', event.KeyID print 'ScanCode:', event.ScanCode print 'Extended:', event.Extended print 'Injected:', event.Injected print 'Alt', event.Alt print 'Transition', event.Transition print ' -' # return True to pass the event to other handlers return True # create a hook manager hm = pyHook.HookManager() # watch for key press events hm.KeyDown = OnKeyboardEvent # set the hook hm.HookKeyboard() # wait forever pythoncom.PumpMessages()
按几个键并观察输出。按Control-C终止程序。在
以编程的方式查看生成的事件, 试试这样的方法:
设置适当的值后, 运行这个程序, 您应该在输出中看到“Injected:True”。在
我认为这是最基本的想法,对于鼠标事件也是如此。 不幸的是我无法测试这个, 因为看起来pyHook是一个Windows操作系统的库,我没有。在
pyHook
免责声明:我不是这方面的专家, 我只是分享我对tutorial和{a2}的观察, 希望能有所帮助。在
event
上的属性不是供您手动设置的, 但是你的事件处理程序可以阅读和操作。在正如您在KeyboardEvent和MouseEvent的文档中看到的那样,
Injected
实例变量的目的是检查事件是否以编程方式生成。 我认为,这意味着您的处理程序从鼠标和键盘活动接收到的事件将始终具有此变量False
。 有一种方法可以通过编程生成事件, 想象一下我测试你的处理者的目的。 方法似乎是HookManager.KeyboardSwitch和{a6}。在试试这个例子。创建一个简单的程序来查看一些实际键盘事件的详细信息:
按几个键并观察输出。按Control-C终止程序。在
以编程的方式查看生成的事件, 试试这样的方法:
^{pr2}$设置适当的值后, 运行这个程序, 您应该在输出中看到“Injected:True”。在
我认为这是最基本的想法,对于鼠标事件也是如此。 不幸的是我无法测试这个, 因为看起来
pyHook
是一个Windows操作系统的库,我没有。在相关问题 更多 >
编程相关推荐