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)+1つの追加キーを含む標準のキーコンボに関連しています。

4

1 に答える 1

1

同時に4つ以上のキーを処理できるとは思いません(たとえば、同時に5文字の文字は機能しません)。これは、今日のほとんどのキーボードのハードウェア制限、つまり内部での配線方法です。同時に押されたすべてのキーをサポートするキーボードは非常に高価になる可能性があり、私は1つをライブで見たことがありません。詳細については、このスレッドを確認してください。tomshardwareについても説明します。

于 2012-10-10T20:02:22.910 に答える