1

我要做的是处理最终用户用手掌、拳头、脸等敲击键盘的事件。听起来很荒谬,但它将用作高功率激光实验室的补充安全功能。我正在考虑观看 4 个或更多键。有效组合示例:

- u{f5}7hby6
- 6g3.io{alt}mn'
- p9hyi
- {tab}2{f2}56{shift}z
- {alt}{windows}\{ctrl}{f8}
- basically anything else that can be typed with a face

我已经尝试过这种方法,但它不起作用,因为并非所有 KeyUp 或 KeyDown 事件都得到处理,尤其是在按下多个键时。

Private keez As New List(Of Integer)

Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    keez.Add(e.KeyValue)
    If keez.Count >= 4 Then MessageBox.Show("I handled it!")
End Sub

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
    Try
        keez.Remove(AscW(e.KeyChar))
    Catch
    End Try
End Sub

Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
    keez.Remove(e.KeyValue)
End Sub

使用这种方法,密钥会不断丢失。我想知道是否有人知道处理连续按下多个键的方法。大多数 Google 搜索都与标准组合键相关,这些组合键几乎总是包含一个修饰符(ctrl、alt、shift)+ 一个附加键。

4

1 回答 1

1

我不认为您可以同时处理超过 4 个键(例如,同时 5 个字母字符将不起作用) - 这是当今大多数键盘的硬件限制,即它们的内部接线方式。支持同时按下所有键的键盘可能非常昂贵,而且我还没有现场看到过。您可以查看此线程以获取更多信息。还讨论了 tomshardware

于 2012-10-10T20:02:22.910 回答