换档按下,并自动上升?(避免长按并保持)

时间:2014-05-11 15:56:06

标签: vb.net release shift

一些帮助......如何在按下班次时使其成为可能,

然后系统会在瞬间自动释放它,

因此,即使用户仍在键盘上按下,

但是vb.net系统已经发布了shift键?

避免长按或按住键...


我已经没想到了,所以决定在做了一些认真的研究之后在这里发帖提问,如果你知道一些技巧可以做出回应,请回答......

1 个答案:

答案 0 :(得分:1)

您可以处理KeyDown事件并检查是否按下Shift

e.KeyCode = Keys.Shift

您可以使用user32.dll lib并发送密钥版本。 &H10Shift密钥代码。 Here是所有关键代码的列表(将0x替换为&H)。 &H2表示发布。如果您要,请输入&H0

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)

keybd_event(&H10, 0, &H2, 0)

您可能希望处理整个表单的KeyDown事件。

Form.KeyPreview = True

这是一个例子。

Public Class Form1
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Me.KeyPreview = True
    End Sub

    Private Sub Form1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Shift Then
            Form1.keybd_event(&H10, 0, &H2, 0)
        End If
    End Sub
End Class