7

私の質問は、applescript/python を使用して Mac でキーを確実に押し続ける方法はありますか?

このようなトピックをほとんどどこでも検索しましたが、どれもそれをカットしませんでした. Python を使用して Arduino からシリアル情報を読み取り、それらの信号をキープレスとして中継しようとしています。次のコードに示すように、applescript を使用してシステム イベントに「キー ダウン」を送信する方法を見てきました。

(Python code)
    def SendDown(key):
    string = str(key)
    cmd = """osascript -e 'tell application "System Events" to key down (key code """ + string   + ")'"
    os.system(cmd)

このコードは一般的に機能しますが、Google フライト シミュレータを制御したいと考えています。これを実行しようとすると、キーを押すのが速くなり、フライト シミュレータまたは基本的な Google Earth マップは、予想よりもわずかにしか動きません。

私がこのコードを使用している方法は、基本的に次のとおりです(suedocode)

if (ArduinoMessage == "left"):
    SendDown(leftKey) #leftKey has been set to 123 -- the code for the left arrow key
    etc...

私の見解では、私が送信しているキー ダウン イベントは基本的に素早いキーストロークであり、キーが押されているわけではありません。キーイベントをapplescriptで直接プログラミングしてみましたが、少し成功しました。私のコードは次のようになりました:

tell application "System Events"
    repeat 50 times    
        key down (key code 123)
    end repeat
    key up (key code 123)
end tell

そのコードは、私が得ている以上に Google Earth マップを動かしましたが、少量 (通常の矢印キーよりもはるかに小さい) 動かすのに長い時間がかかりました。次に、そのapplescriptをPythonに書き込もうとしましたが、すべての改善が失われました。

だから私は質問をもう一度言います-applescript/pythonを使ってMacで確実にキーを押し続ける方法はありますか?

これを Windows でかなり簡単に動作させることができましたが、このようなアプリケーション用に設計された SendKeys という Windows 専用ライブラリを使用することができました。

どんな助けでも大歓迎です。

ありがとう、

ジェイク

4

1 に答える 1