注册 登录
编程论坛 VB6论坛

Visual Basic怎样设置命令热键?

xandy 发布于 2008-12-07 01:06, 1657 次点击
窗体成为焦点或者没有成为焦点时都可以用的热键,应该用到哪个API?
5 回复
#2
三断笛2008-12-11 10:07
这样的问题应该先问百度
不是不知道回答,而是回答的太多了别人都懒得重复回答了
#3
我是菜鸟哦2008-12-11 11:29
GETKEYSTAT + timer

三段兄,不要这么小气么
#4
三断笛2008-12-11 13:42
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyF2) Then
    Print "按了F2";
End If
End Sub
Timer1的Interval 设为1

用Hook比较省资源 代码就不发了
#5
hbutwzc2008-12-11 14:20
先建立个函数  响应热键事件
Public Sub ShowQuick(keycodee As Integer)
 If keycodee = vbKeyF1 Then Call 事件1
 If keycodee = vbKeyF3  Then Call 事件2
If keycodee = vbKeyF6   Then Call 事件3
 If keycodee = 115 Then Call 事件4
 If keycodee = vbKeyF8 Then Call 事件5
If keycodee = vbKeyF9 Then Call 事件6
 If keycodee = 122 Then Call 事件7
If keycodee = vbKeyF12 Then Call 事件8

End Sub

再在窗体 KeyDown 事件中调用就可以啊
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim CtrlDown
    Call ShowQuick(KeyCode)
    CtrlDown = (Shift And vbCtrlMask) > 0
    If KeyCode = vbKeyReturn Then
        If CtrlDown Then
            Call cmdOK_Click
        End If
    End If
   这是我以前系统里面的 例子
#6
e3bnsd2012-12-06 23:44
有价值哦。
1