注册 登录
编程论坛 VB6论坛

VB关于任意组合的全局热键,高手进!!

elik720 发布于 2020-09-05 11:48, 1623 次点击
普通的全局热键  有CTRL,shift,alt作为组合的 快捷键  已经有很多模块了     而把组合键改为其他字母  比如SDF,JKL等  再配合其他字母的全局热键  应该没有现成的吧


我们都知道 在VB的  某个控件或  某个窗体上    很容易实现  按下L 键的同时 再按下U键 触发事件   比如  按下L键  设置某个变量b=true  弹起设置b=false  再按判断事件按下U键的时候  b为true则触发  
这样我们就能轻松实现  任意组合键的热键


以下是为什么需要任意组合的全局热键
但是   全局热键 的任意组合  就要麻烦的多了吧     因为很多软件热键用的比较多
比如 PS软件  CTRL+E  CTRL+T CTRL+J  CTRL+SHIFT+Z CTRL+Z CTRL+F 快捷键组合键一大堆,占用了很多,如果全局热键也用这些必然冲突
更不要说CAD软件  QQ  旺旺 等 热键太多   为了不冲突   请求研发  任意组合的 全局热键



需求:
比如按下L 的同时 按下U 触发   ,  按下D的同时 按下J触发   ,对于API掌握的很熟练的人 一定能做出来   求大神写模块出来!!!  造福苍生
2 回复
#2
cwa99582020-09-07 12:09
这样可以吗?但是在中文输入下不行

程序代码:
Dim Flg As Boolean

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyL Then
        Flg = True
   
    End If
    If Flg Then
        If KeyCode = vbKeyU Then
'            Flg = False   '可以不要
            Print "按下了L键和U键!"
        End If
    End If

End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyL Then Flg = False
End Sub
#3
apull2020-09-07 13:31
用键盘钩子,需要用API:KeyBoardProc,SetWindowsHookEx
1