Python スクリプトからシリアル端末へのキーストロークをシミュレートしようとしています。どうやら文字「a」を入力することとキープレスイベントを送信することは2つの異なることです。
このガイドを採用しようとしましたが、うまくいかないようでした: https://learn.adafruit.com/introducing-bluefruit-ez-key-diy-bluetooth-hid-keyboard/sending-keys-via-serial
さらに、シリアルポートを直接読み取ろうとしたところ、キープレス「a」が「O\x00」を送信したようで、「\x4F\x00」を送信するだけでうまくいくと思いました。おそらく、私が遭遇しているタイミングの問題があります...
import serial
import time
def writeChar(port, char, bVerify = True):
port.flush()
port.write("\xFD")
if (char.isupper()):
# Shift left
write("\x02")
else:
port.write("\x00")
port.write("\x00")
port.write(Keys[char.upper()])
port.write("\x00")
port.write("\x00")
port.write("\x00")
port.write("\x00")
port.write("\x00")
if (char != "KEY_NONE"):
time.sleep(.1)
writeChar(port, "KEY_NONE", False)
if (bVerify):
inChar = port.read()
def writeChar2(port, char):
port.flush()
port.write(Keys2[char]+'\x00')
これらの試みはどちらもうまくいかないようでした。キー['A'] = \x04. Keys2['a'] = \x4F
私が最も驚いたのは、すでにこれを行っている人を見つけることができなかったことです。スクリプトからキーストローク/コマンドを自動化すると非常に便利なようです。
何が欠けている可能性がありますか?