如何在python中运行另一个程序的python中模拟按键事件

问题描述 投票:0回答:2

我正在运行ML模型,它预测了fingure手势。我正在尝试使用pynput库模拟python中的按键事件,我检查它工作正常。但是我有其他程序是使用pygame库在python中编写的游戏,它打开了在一个新的窗口,但问题是按键控制不起作用,但它可以在我手动按键盘按钮时工作。

python-3.x pygame pynput
2个回答
1
投票

在pygame中,您可以通过执行以下操作将事件添加到事件队列:

newevent = pygame.event.Event(type, **attributes) #create the event
    pygame.event.post(newevent) #add the event to the queue

其中type是事件的类型(数值常量),**attributes是属性的关键字列表,也是预定义的常量。

所有这些常量都在pygame.locals模块中定义。 pygame event docspygame key docs列出了所有这些。

因此,如果您想模拟按下'a'键,例如,代码将为:

newevent = pygame.event.Event(pygame.locals.KEYDOWN, unicode="a", key=pygame.locals.K_a, mod=pygame.locals.KMOD_NONE) #create the event
    pygame.event.post(newevent) #add the event to the queue

KEYDOWN是对应于keydown事件的常量。 unicode是按下键的unicode表示。 key是与按下的键相关联的常量。 mod是表示修饰符的常量(例如,如果按下按钮,同时按下SHIFT或CAPS_LOCK)。

希望能帮助到你。


0
投票

我通过使用keyboard.press模拟按键事件来解决问题,并使用keyboard.Listner()监听相同的事件。两者都存在于键盘库中。所以我没有使用pygame函数来监听事件。谢谢大家的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.