Pynput Library

PCの原始的な通信ともいえるキーボードの入力、つまりキーコードの受信について、最近スイッチとしてのキーボード活用に興味があることから、Pythonの入力装置のライブラリpynputを試してみました。

https://pynput.readthedocs.io/en/latest/
https://buildmedia.readthedocs.org/media/pdf/pynput/latest/pynput.pdf

このライブラリはキーボードだけでなくマウスについても豊富な機能がありますが、ここではキーボードだけを対象にします。
まずは、上記ドキュメントからそのままの引用で、キーのオンオフをプログラムで実行するサンプルに興味を持ちました。

これを実行すると

” aAAHello World”

このように出力されます。
フォーカスがうつれば、そこに対して入力します。(テキストエディタで確認)

次に、キーコードをMIDIデータとして送信してみました。

環境) Python 3.7.7 / Windows 10
python-rtmidi 1.4.1
pynput 1.7.6

キーコードを取得するには、以下のソースコードよりVkKeyScanを使いました。
https://github.com/moses-palmer/pynput/blob/master/lib/pynput/keyboard/_win32.py
全角キーなどを押したときに例外がでないように、key.charのタイプチェックをしました。

MIDIは内臓ソフトシンセに対して送信します。
[‘Microsoft GS Wavetable Synth 0’]

これもフォーカスがかわっても動作し続けます。

PCキーボードはコンピュータを操作する上で重要なデバイスですので、これを利用して様々なことができそうです。