1

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

私が最も驚いたのは、すでにこれを行っている人を見つけることができなかったことです。スクリプトからキーストローク/コマンドを自動化すると非常に便利なようです。

何が欠けている可能性がありますか?

4

0 に答える 0