質問編集履歴

1

記載ミスの修正

2023/02/16 08:18

投稿

Aki1000
Aki1000

スコア78

test CHANGED
File without changes
test CHANGED
@@ -54,10 +54,43 @@
54
54
 
55
55
  上記でコメントアウトしている、
56
56
 
57
+ if key.char == "s":
58
+ print("s key pressed by asc")
59
+
60
+ を有効にした以下のプログラムでは
61
+
62
+ ```python
63
+ from pynput.keyboard import Key, Listener
64
+
65
+ def on_press(key):
66
+ print('{0} pressed'.format(
67
+ key))
68
+
69
+ if key == "s":
70
+ print("s key pressed")
71
+
72
+ if key.char == "s":
73
+ print("s key pressed by asc")
74
+
57
- if key.char == "<98>":
75
+ if key == "<98>":
58
76
  print("テンキー 2 pressed")
59
77
 
78
+ if key == Key.shift_r:
79
+ print("Right shift pressed")
80
+
81
+ if key == Key.esc:
82
+ # Stop listener
83
+ return False
84
+
85
+
86
+ # Collect events until released
87
+ with Listener(on_press=on_press) as listener:
88
+ listener.join()
89
+
90
+ ```
91
+
92
+
60
- を有効にすると、sキーを押すとsが押されたと反応するのですが、右シフトキーなどを押すとエラーでコードが止まります。key.charとしたときにkeyに普通の文字のキー以外が入ってるとエラーが出るようです。
93
+ と、sキーを押すとsが押されたと反応するのですが、右シフトキーなどを押すとエラーでコードが止まります。key.charとしたときにkeyに普通の文字のキー以外が入ってるとエラーが出るようです。
61
94
 
62
95
  どうしたら、pynputでテンキーや普通のキーなど様々な押されたキーを判別して動作させることが出来るでしょうか?
63
96
  (EnterやBSやSpaceやshiftキーなどの特殊なキーは問題なく動くのですが……)