2016-08-21 150 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! –