使用AutoHotkey在模拟器中启动游戏

时间:2016-08-21 18:17:30

标签: autohotkey

我想创建一个.ahk脚本,用模拟器启动游戏。打开模拟器时,应该发送F10加载保存状态,让我直接进入游戏菜单并跳转介绍。这是我到目前为止所得到的:

Run, C:\Users\****\Documents\!Others\Emulators\SNES9x\snes9x-x64.exe -fullscreen "E:\Consoles\Nintendo SNES\Goof Troop\Goof Troop.smc"
Sleep, 100
IfWinExist ahk_class Snes9X: WndClass
{
    WinActivate
    WinWaitActive
    IfWinActive ahk_class Snes9X: WndClass
    Send, {F10}
    Return
}

我想确保在合适的时间发送F10。脚本应该等待模拟器先打开,我做得对吗?

我不知道怎么做的另一件事是将Xinput转换为键盘,例如当我在游戏中并按下LB + RB + B它将其转换为ALT + F4并关闭窗口,如何我可以这样做吗?

1 个答案:

答案 0 :(得分:0)

我的方法是,假设模拟器进程的名称是snes9x-x64.exe,那么

processName := "snes9x-x64.exe"
run %processName%
flag = 0

Loop
{
    WinGetTitle, title, ahk_exe %processName%
    IfWinActive, %title%
    {
        If flag = 0
        {
            Send, {F10}
            flag = 1
        }
    }
}

这里一旦模拟器打开,我们将检查窗口是否在循环中处于活动状态,然后发送F10并在窗口激活后使用标志停止循环。

对于LB + RB + B,您必须使用键盘模拟器(如xpadder)并将键LB,RB和B映射到键盘键并为其定义快捷键。