zoukankan      html  css  js  c++  java
  • 如何识别键盘左右的shift,Ctrl或Alt键

    用API (GetAsyncKeyState)实现,在WIN 2K,XP 下有效:

    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Private Const VK_LSHIFT = &HA0
    Private Const VK_RSHIFT = &HA1
    Private Const VK_LCTRL = &HA2
    Private Const VK_RCTRL = &HA3
    Private Const VK_LMENU = &HA4
    Private Const VK_RMENU = &HA5

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyShift And Shift = vbShiftMask And (GetAsyncKeyState(VK_LSHIFT) And &H8000) Then MsgBox "you click the Left Shift"
    If KeyCode = vbKeyShift And Shift = vbShiftMask And (GetAsyncKeyState(VK_RSHIFT) And &H8000) Then MsgBox "you click the RIGHT Shift"

    If KeyCode = vbKeyMenu And Shift = vbAltMask And (GetAsyncKeyState(VK_LMENU) And &H8000) Then MsgBox "you click the Left ALT" ' only ALT was pressed
    If KeyCode = vbKeyMenu And Shift = vbAltMask And (GetAsyncKeyState(VK_RMENU) And &H8000) Then MsgBox "you click the RIGHT ALT" ' only ALT was pressed

    If KeyCode = vbKeyControl And Shift = vbCtrlMask And (GetAsyncKeyState(VK_LCTRL) And &H8000) Then MsgBox "you click the Left CTRL"
    If KeyCode = vbKeyControl And Shift = vbCtrlMask And (GetAsyncKeyState(VK_RCTRL) And &H8000) Then MsgBox "you click the Right CTRL"

    End Sub

    Private Sub Form_Load()
    Me.KeyPreview = True
    End Sub

  • 相关阅读:
    寒武纪思元290芯片和MLU290-M5卡
    NUMA Domian和NUMA Distance
    Understanding Habana Labs's GPU
    AMD Instinct MI100-首个FP64性能超10TFLOPS的计算卡
    编程小记
    Redis二进制安全
    Redis布隆过滤器与布谷鸟过滤器
    缓存与缓存一致性协议
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/fengju/p/6336380.html
Copyright © 2011-2022 走看看