标题:VB关于任意组合的全局热键,高手进!!
只看楼主
elik720
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2020-8-27
结帖率:50%
已结贴  问题点数:20 回复次数:2 
VB关于任意组合的全局热键,高手进!!
普通的全局热键  有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掌握的很熟练的人 一定能做出来   求大神写模块出来!!!  造福苍生
搜索更多相关主题的帖子: 全局 CTRL 任意 组合 热键 
2020-09-05 11:48
cwa9958
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:247
专家分:1228
注 册:2006-6-25
得分:10 
这样可以吗?但是在中文输入下不行

程序代码:
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
2020-09-07 12:09
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:10 
用键盘钩子,需要用API:KeyBoardProc,SetWindowsHookEx
2020-09-07 13:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503073-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083061 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved