Python 模拟帝国时代3的按键

Python 模拟帝国时代3的按键,python,python-3.x,keyboard,pyautogui,Python,Python 3.x,Keyboard,Pyautogui,我一直在尝试制作一个简单的python脚本,它可以将击键发送到游戏《帝国时代3》。我尝试过pyautogui以及使用扫描代码进行DirectInput,但似乎没有任何效果。我只是不明白游戏需要什么样的输入,或者如何避免从我的代码中获取任何输入。我的代码在测试几种不同的方法时有点混乱,但如果有人想看的话,这里就是 import pyautogui import pyperclip import random import keyboard import time from directkeys i

我一直在尝试制作一个简单的python脚本,它可以将击键发送到游戏《帝国时代3》。我尝试过pyautogui以及使用扫描代码进行DirectInput,但似乎没有任何效果。我只是不明白游戏需要什么样的输入,或者如何避免从我的代码中获取任何输入。我的代码在测试几种不同的方法时有点混乱,但如果有人想看的话,这里就是

import pyautogui
import pyperclip
import random
import keyboard
import time
from directkeys import PressKey, W, A, S, D


def spawn_hotdog():
    command = "mustard relish and burning oil"
    pyperclip.copy(command)
    pyautogui.click(500, 500)
    pyautogui.keyDown('enter')
    pyautogui.hotkey("ctrlleft", "v")
    pyautogui.keyDown('enter')


loop = False

while True:
    try:
        if keyboard.is_pressed('h'):
            loop = True
        elif keyboard.is_pressed('p'):
            loop = False
        elif keyboard.is_pressed('esc'):
            break
    except:
        pass
    if loop:
        time.sleep(1)
        PressKey(W)
        PressKey(0x1C)
这是我从中得到的directkeys.py文件


问题是你的代码真的有问题,这就是为什么它不起作用。我修复了一些错误,它工作了。尝试添加一些可以启用代码的击键

import pyautogui
import random
import keyboard
import time

def spawn_hotdog():
    time.sleep(5)
    command = "mustard relish and burning oil"#command to type
    pyperclip.copy(command)
    pyautogui.click(500, 500)
    pyautogui.keyDown('enter')
    pyautogui.typewrite(command,interval = 0.10)
    pyautogui.keyUp('enter')#your code was buggy here
#types command in five seconds
spawn_hotdog()

#types command every five seconds
while True:
    spawn_hotdog()
    #add condition to break here!

#the rest of your code doesnt make sense

PyAutoGUI在许多windows视频游戏使用的DirectX windows中工作时遇到问题。恐怕这是不可能的。很抱歉造成混淆,但我的代码的其余部分是我尝试使其工作的代码,因为这里的代码是我的原始版本,但没有我启动它的方法。我遇到的问题是pyautogui和pyperclip不适用于像《帝国时代》这样的游戏,因为它在DirectX中。我认为你应该尝试使用PyUserInput,我认为这可能有效。
import pyautogui
import random
import keyboard
import time

def spawn_hotdog():
    time.sleep(5)
    command = "mustard relish and burning oil"#command to type
    pyperclip.copy(command)
    pyautogui.click(500, 500)
    pyautogui.keyDown('enter')
    pyautogui.typewrite(command,interval = 0.10)
    pyautogui.keyUp('enter')#your code was buggy here
#types command in five seconds
spawn_hotdog()

#types command every five seconds
while True:
    spawn_hotdog()
    #add condition to break here!

#the rest of your code doesnt make sense