所以我正在设计我的A级计算项目,我需要知道VB.NET是否可以同时注册多个按键,例如F& J,并且能够将它们视为单独的按键。我可能需要一次最多4个按键,所以如果VB.NET不能这样做,我的程序将受到限制(虽然只是轻微)。
如果可以的话,我是否只是将它们视为没有同时按下并单独检查两个键,或者是否有特殊的方法来检测它?
提前致谢。
答案 0 :(得分:2)
您可以跟踪已按下并释放的按键。
创建一个新的winforms项目并添加一个Label。这应该给你一个很好的起点。
Public Class Form1
Private pressedKeys As New List(Of System.Windows.Forms.Keys)()
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
If Not pressedKeys.Contains(e.KeyCode) Then pressedKeys.Add(e.KeyCode)
printCurrentKeys()
End Sub
Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
If pressedKeys.Contains(e.KeyCode) Then pressedKeys.Remove(e.KeyCode)
printCurrentKeys()
End Sub
Private Sub printCurrentKeys()
If pressedKeys.Count > 0 Then
Me.Label1.Text = pressedKeys.
Select(Of String)(Function(k) Chr(k)).
Aggregate(Function(s1, s2) s1 & ", " & s2)
Else
Me.Label1.Text = ""
End If
End Sub
End Class
(上述8个键可以通过我的anti-ghosting键盘Sidewinder X4完成。)
答案 1 :(得分:1)
据说你可以登记注册表
Dim KeyboardDataQueueSize = My.Computer.Registry.GetValue(
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kbdclass\Parameters",
"KeyboardDataQueueSize", Nothing)