回答編集履歴

1

見直しキャンペーン中

2023/07/22 10:15

投稿

TN8001
TN8001

スコア9862

test CHANGED
@@ -1,103 +1,52 @@
1
1
  `RawInput`とか`WH_KEYBOARD_LL`とかがキーワードになりますが、難しいので出来合いのものを使わせてもらいましょう。
2
2
 
3
-
4
-
5
3
  [NuGet Gallery | KeyboardHookManager 1.1.0](https://www.nuget.org/packages/KeyboardHookManager/1.1.0)
6
-
7
4
  例えばこれだとこんな感じでしょうか。
8
-
9
5
  注意)こちらを薦めているわけではありません。ソースコード・ライセンス表記があって、そこそこDL数もあり新しいものだったってだけです。
10
6
 
11
-
12
-
13
- ```C#
7
+ ```cs
14
-
15
8
  // [NuGet Gallery | KeyboardHookManager 1.1.0](https://www.nuget.org/packages/KeyboardHookManager/1.1.0)
16
9
 
17
-
18
-
19
10
  using System.Windows.Forms;
20
-
21
11
  using KeyboardHookManager;
22
12
 
23
-
24
-
25
13
  namespace Questions282456
26
-
27
14
  {
28
-
29
15
  public partial class Form1 : Form
30
-
31
16
  {
32
-
33
17
  private TextBox textBox;
34
-
35
18
  public Form1()
36
-
37
19
  {
38
-
39
20
  InitializeComponent();
40
21
 
41
-
42
-
43
22
  textBox = new TextBox { Dock = DockStyle.Fill, Multiline = true, };
44
-
45
23
  Controls.Add(textBox);
46
24
 
47
-
48
-
49
25
  HookManager.KeyPress += HookManager_KeyPress;
50
-
51
26
  HookManager.KeyDown += HookManager_KeyDown;
52
-
53
27
  }
54
28
 
55
-
56
-
57
29
  private void HookManager_KeyPress(object sender, KeyPressEventArgs e)
58
-
59
30
  {
60
-
61
31
  switch(e.KeyChar)
62
-
63
32
  {
64
-
65
33
  case 'w': textBox.Text += 'w'; break;
66
-
67
34
  case 'a': textBox.Text += 'a'; break;
68
-
69
35
  case 's': textBox.Text += 's'; break;
70
-
71
36
  case 'd': textBox.Text += 'd'; break;
72
-
73
37
  }
74
-
75
38
  }
76
39
 
77
-
78
-
79
40
  private void HookManager_KeyDown(object sender, KeyEventArgs e)
80
-
81
41
  {
82
-
83
42
  switch(e.KeyCode)
84
-
85
43
  {
86
-
87
44
  case Keys.Up: textBox.Text += "Up"; break;
88
-
89
45
  case Keys.Left: textBox.Text += "Left"; break;
90
-
91
46
  case Keys.Down: textBox.Text += "Down"; break;
92
-
93
47
  case Keys.Right: textBox.Text += "Right"; break;
94
-
95
48
  }
96
-
97
49
  }
98
-
99
50
  }
100
-
101
51
  }
102
-
103
52
  ```