2016-08-21 5 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

私はエミュレータプロセスの名前はエミュレータが開かれると、我々は窓がループ内でアクティブであるかどうかをチェックしますそして、ここで

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

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

snes9x-x64.exeであれば、想定されるやり方フラグを使用してウィンドウがアクティブになったら、F10を送信してループを停止します。

LB + RB + Bの場合は、xpadderのようなキーボードシミュレータを使用し、LB、RB、Bのキーをキーボードのキーにマッピングし、そのショートカットを定義する必要があります。

+0

ありがとうございます! –

+0

私はAutoHotkeyがxinputをネイティブにdinputに変換できると思っていました。なぜなら、それを実装する必要があるのは間違いですが、私はxpadderが嫌いですが、私はより良い選択肢があります。私はコントローラコンパニオンが欲しいです! –

関連する問題