2016-08-21 149 views
0

我想创建一个.ahk脚本,该脚本使用模拟器启动游戏。当模拟器打开时,它应该发送F10加载保存状态,让我直接进入游戏菜单并跳转引入。这是我走到这一步:使用AutoHotkey在模拟器中启动游戏

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并关闭窗口时,我怎样才能做到这一点?

回答

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映射到键盘键并为其定义快捷键。

+0

感谢它的工作! –

+0

我认为AutoHotkey可以将xinput翻译为dinput本身,可惜他们应该实现它,我不知道为什么,但我不喜欢xpadder,但我有一个更好的选择,我认为它会更好地为什么我想要做的是Controller Companion! –