回答編集履歴

2

修正

2021/01/19 02:19

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -17,10 +17,6 @@
17
17
  import time
18
18
 
19
19
  import ctypes as ct
20
-
21
-
22
-
23
- print(bin(0x8000))
24
20
 
25
21
 
26
22
 

1

修正

2021/01/19 02:19

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,3 +1,57 @@
1
1
  `ESC` が押された場合のほうにループを抜ける `break` が入っているので、ループが終了します。
2
2
 
3
3
  `break` を消せば無限ループになります。
4
+
5
+
6
+
7
+ ## 改善案
8
+
9
+
10
+
11
+ 独自にフラグ変数を1つ導入してみてはどうでしょうか
12
+
13
+
14
+
15
+ ```
16
+
17
+ import time
18
+
19
+ import ctypes as ct
20
+
21
+
22
+
23
+ print(bin(0x8000))
24
+
25
+
26
+
27
+ psc_pressed = False
28
+
29
+
30
+
31
+ try:
32
+
33
+ while True:
34
+
35
+ if psc_pressed or ct.windll.user32.GetAsyncKeyState(0x2C) == 0x8000:
36
+
37
+ print("スクリーンショット")
38
+
39
+ time.sleep(1)
40
+
41
+ psc_pressed = True
42
+
43
+ elif ct.windll.user32.GetAsyncKeyState(0x1B) == 0x8000:
44
+
45
+ print("Escが押されました")
46
+
47
+ break
48
+
49
+ except KeyboardInterrupt:
50
+
51
+ print(KeyboardInterrupt)
52
+
53
+ print("終了")
54
+
55
+
56
+
57
+ ```