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

时间:2019-04-17 13:32:49

标签: python-3.x pygame pynput

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

2 个答案:

答案 0 :(得分:1)

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

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

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

所有这些常量都在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的同时按下了按钮,则为。)

希望有帮助。

答案 1 :(得分:0)

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