如何在使用python玩游戏时在键盘上输入字符?

时间:2017-07-24 16:02:32

标签: python input character

我正在制作AI以使用Tensorflow在GTA San Andreas中驾驶汽车,我想知道使用python在每个帧上按下了哪些字符/键。我无法使用input()因为我的程序不在前面。我做了什么?

1 个答案:

答案 0 :(得分:2)

pyHook可能是您可能正在寻找的东西。可以使用Windows挂钩捕获所有键盘或鼠标事件。 pyhook是一个围绕钩子API的Python包装器。

This answer提供了使用pyhook捕获按键的示例代码。 This document提供了Windows中Hook的基础知识。

下面是一个示例,它挂钩键盘事件并打印按下到控制台的键。它会在xX的按键上退出。

#!python

import pythoncom, pyHook
import sys

def OnKeyboardEvent(event):
    # block only the letter A, lower and uppercase
    print chr(event.Ascii)
    if event.Ascii in (ord('x'), ord('X')):
        sys.exit()
    # returning True to pass on event to other applications
    return True

# create a hook manager
hm = pyHook.HookManager()
# watch for all mouse events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()