Windows 10、Python 3.7 で pynput を使用すると、返される文字コードは、プログラムが開始されたときの Caps Lock キーの状態を反映しています。そのキーを変更しても、返される値は変更されません。
from pynput import keyboard
def on_release(key):
print('{0} released'.format(key))
if key == keyboard.Key.esc:
# Stop listener
return False
with keyboard.Listener(on_release=on_release) as listener:
listener.join()
Caps Lock をオンにして実行すると、次のようになります。
'A' released
Key.caps_lock released
'A' released
Key.esc released
Aa
>>>
これで Caps Lock はオフになりました。再起動、わかりました
=== RESTART: C:/Users/davec/Documents/Perkins/Browser/tests/pynput-kbd.py ===
'a' released
Key.caps_lock released
'a' released