私の質問は、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 専用ライブラリを使用することができました。
どんな助けでも大歓迎です。
ありがとう、
ジェイク