使用Python将密钥发送到游戏中

时间:2014-08-09 04:15:28

标签: python python-3.x

我对python很新,但确实有其他语言的经验。我最近在Steam上购买了最终幻想III的PC版本,我想测试一周的python技能,看看我是否可以自动向游戏发送按键,基本上可以为我播放并磨练我的工作水平而我是程。

在互联网上快速搜索,我发现这个http://win32com.goermezer.de/content/view/136/254/我希望能够让我做到这一点。

这是我的代码:

import win32com.client
import time

shell = win32com.client.Dispatch("WScript.Shell")
shell.AppActivate("Final Fantasy III")

def actionSelect():
    time.sleep(1) #time between switching characters
    shell.SendKeys("s", 0) #'s' is my down key
    time.sleep(0.2)
    shell.SendKeys("s", 0)
    # so it goes down two options for each character for the 'Guard' option
    time.sleep(0.2) #slight delay between each key to compensate for processing
    shell.SendKeys("e", 0) #then it uses the 'e' key to select that option
    return

def battle():
    time.sleep(5)
    for rounds in range(0, 10): #loops 10 times (due to xp gain per action) 
        for action in range(0, 4): #loops 4 times = 4 charcaters
            actionSelect()
        time.sleep(9) #time for all to Guard and enemy to attack

battle()

我不知道第三和第四行代码是做什么的,并且不会有少量的Google和扫描通过外行人的术语告诉我。我也不确定SendKeys(" s",0)中的0是什么。代码本身有效...但只在我点击的任何文本框中。它没有按照我的计划切换到游戏窗口(我怎么能这样做?)如果我手动切换到游戏,它会在后台继续运行,但实际上并不控制游戏中的任何内容。

对我的有趣帮助"有趣"周末项目将非常有必要。感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用我对this问题的回答将击键发送到其他应用程序。它在Unreal Engine 4中运行的Playerunknown的Battlegrounds(PUBG)中为我工作,因此我认为使用此引擎的其他游戏以及许多其他游戏都应该能够从该方法接收输入