2016-09-24 64 views
1

我對MarlIO項目this留下了深刻的印象,並且希望使用Python實現類似的東西。不過,我得到了模擬器OpenEmu的工作,但是,我不知道如何使用Python來控制遊戲。Macbook OpenEmu Python發送鍵擊

這不就是發送幾個按鍵的問題嗎?!男人,在Mac上並不那麼簡單。

In [41]: cmd1 
Out[41]: '\nosascript -e \'tell application "System Events" to key code 48 using {command down}\' \n' 

In [42]: cmd2 
Out[42]: '\nosascript -e \'tell application "System Events" to keystroke "a"\' \n' 

我想先用COMMAND + TAB 切換到openEmu然後打一個跳。但是,當我運行這兩個命令時,它只切換到OpenEmu,看起來好像沒有發送按鍵

enter image description here

然而,當我跑 'CMD2' 分開,它清楚地工作。 然後我測試了一個不同的應用程序 - 崇高,它似乎在那裏工作。

enter image description here

任何人都可以點我朝着正確的方向我真的錯OpenEmu?

回答

1

幾個月前我做過類似的事情。擊鍵被髮送。但是,系統事件按鍵幾乎沒有時間,所以模擬器的輸入機制不會選擇它們。

我找不到一種方法來詢問AppleScript的持續時間,所以我最終使用Quartz event taps來解決問題,例如,您可以這樣做:「開始按下按鍵,睡眠0.1秒,停止按下按鍵」 。我在Swift中完成了這個工作,但你應該可以在Python中使用ctype模塊。

另請注意,可能很難在基於幀的基礎上與仿真器同步。我raised that problem with the project maintainers,但由於相對較冷的反應,我轉身離去。

+0

您的自定義構建與AppleScript一起運行良好嗎?你能發佈一個工作片段嗎? – Pwdr

+0

@Pwdr,我沒有執行輸入支持。如果你想要一個事件點擊的例子,我可能會想出一個例子。 – zneak

+0

那太棒了! – Pwdr