vb.net组合键判断 vbs组合键

VB.NET组合键直接设置貌似不行可以在窗体的 KeyDown事件里面写Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("快捷键设置成功")
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.Shift And e.KeyCode = Keys.C Then
Button1_Click(sender, e)
End If
End Sub
End Class
VB中如何判断组合键Ctrl+C键?Private Sub Form_Load()
Me.KeyPreview = True
End Sub
'让窗体响应键盘事件
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And chr(keycode)="C" then
msgbox "你按下了ctrl + C"
end if
End Sub
'当ctrl键被按下和 “C”键被按下弹出提示信息"你按下了ctrl + C"
'keydown是键盘按下事件里面的shift的值为:
'Shift=1 按了 Shift
'Shift=2 按了 Ctrl
'Shift=3 按了 Shift+Ctrl
【vb.net组合键判断 vbs组合键】'Shift=4 按了 Alt
'Shift=5 按了 Shift+Alt
'Shift=6 按了 Ctrl+Alt
'Shift=7 按了 Alt+Shift+Ctrl
'就是当Alt+Shift+Ctrl都被按下的时候shift返回值为7
'当shift=0 时 表示什么也没有被按下
vb.net 怎么知道按下了多个按键用APIGetKeyboardState vb.net组合键判断 , 判断所有vb.net组合键判断的键里哪些被按下了 。
下面vb.net组合键判断的是判断键盘灯的状态
Public Class NativeMethods
Private Shared keyState() As Byte
DllImport("user32.dll") _
Private Shared Function GetKeyboardState(ByVal keyState() As Byte) As Boolean
End Function
Private Shared Sub Update()
keyState = New Byte(256) {}
Dim result As Boolean = GetKeyboardState(keyState)
' Check for error:
If result = False Then
Debug.WriteLine("GetKeyBoardState error: "Marshal.GetLastWin32Error)
Throw New Exception("GetKeyBoardState error: "Marshal.GetLastWin32Error)
End If
End Sub
Public Enum LightState
Off
[On]
End Enum
' Example - the keyboard lights...
Public Shared ReadOnly Property CapsLockState() As LightState
Get
Update()
Dim isOn As Boolean = (keyState(Keys.CapsLock) = 1)
Return IIf(isOn, LightState.On, LightState.Off)
End Get
End Property
Public Shared ReadOnly Property NumLockState() As LightState
Get
Update()
Dim isOn As Boolean = (keyState(Keys.NumLock) = 1)
Return IIf(isOn, LightState.On, LightState.Off)
End Get
End Property
Public Shared ReadOnly Property ScrollLockState() As LightState
Get
Update()
Dim isOn As Boolean = (keyState(Keys.Scroll) = 1)
Return IIf(isOn, LightState.On, LightState.Off)
End Get
End Property
End Class
VB.NET键盘Hook成功后拦截不了组合键最简单的就是把属性改一下,效果跟无框的差不多 。
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle
Me.ControlBox = False
Me.MaximizeBox = False
Me.Text = ""
至于hook的问题,它确实是比系统慢了一步得到消息,当前线程或全局的都一样,不过你可以先拦截Windows键或者Up键其中一键来阻拦组合键 。
vb.net组合键判断的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vbs组合键、vb.net组合键判断的信息别忘了在本站进行查找喔 。

    推荐阅读