皮钩事件。注射?

2024-06-11 07:34:28 发布

您现在位置:Python中文网/ 问答频道 /正文

真的是个问题。基于pyHook's tutorial,函数中的.HookManager().OnMouseEvent事件变量具有.Injected属性。我找不到任何信息吗?我试过了

event.Injected = '<char to inject>'

但没用。在


Tags: to函数event信息属性事件tutorialinject
1条回答
网友
1楼 · 发布于 2024-06-11 07:34:28

免责声明:我不是这方面的专家, 我只是分享我对tutorial和{a2}的观察, 希望能有所帮助。在

event上的属性不是供您手动设置的, 但是你的事件处理程序可以阅读和操作。在

正如您在KeyboardEventMouseEvent的文档中看到的那样, Injected实例变量的目的是检查事件是否以编程方式生成。 我认为,这意味着您的处理程序从鼠标和键盘活动接收到的事件将始终具有此变量False。 有一种方法可以通过编程生成事件, 想象一下我测试你的处理者的目的。 方法似乎是HookManager.KeyboardSwitch和{a6}。在

试试这个例子。创建一个简单的程序来查看一些实际键盘事件的详细信息:

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终止程序。在

以编程的方式查看生成的事件, 试试这样的方法:

^{pr2}$

设置适当的值后, 运行这个程序, 您应该在输出中看到“Injected:True”。在

我认为这是最基本的想法,对于鼠标事件也是如此。 不幸的是我无法测试这个, 因为看起来pyHook是一个Windows操作系统的库,我没有。在

相关问题 更多 >