我要做的是处理最终用户用手掌、拳头、脸等敲击键盘的事件。听起来很荒谬,但它将用作高功率激光实验室的补充安全功能。我正在考虑观看 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)+ 一个附加键。