1,453
社区成员
发帖
与我相关
我的任务
分享Private Sub Check1_Click()
If (Check1.Value = Unchecked) Then
Check1.Value = Checked
HotKey vbKey2 '注册热键
Else
HotKey_Flg = True '停止热键等待
Call UnregisterHotKey(Me.hWnd, &HBCFF&)
Check1.Value = Unchecked
End If
End SubPrivate Sub HotKey(keycode As Integer)
Dim Message As Msg
Dim a As Boolean '为False隐藏窗体,True则显示
Dim t As Long
'注册 Ctrl+1 为热键
t = RegisterHotKey(Me.hWnd, &HBCFF&, MOD_CONTROL, keycode)
Me.Show
'等待处理消息
HotKey_Flg = False
a = True
Debug.Print "RegisterHotKey=" & t
Do While Not HotKey_Flg
'等待消息
WaitMessage
'检查是否热键被按下
If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
If a Then '如果窗体是可见状态那么
Me.WindowState = 1 '如果是你设置的快捷键且窗体当前可见 就隐藏窗体
traydelbal Form1
a = False
Else
Me.WindowState = 0
Form1.Show '如果是你设置的快捷键但窗体当前不可见 就显示窗体
TrayAddIcon Form1, Form1.Icon, "论坛挂机器By三颜木急风传~"
TrayBalloon Form1, "欢迎回来!刚才一直处于挂机中~" + vbCrLf + UseTime(), "论坛挂机程序", NIIF_INFO
a = True
End If
End If
'转让控制权,允许操作系统处理其他事件
DoEvents
Loop
End Sub
On Error GoTo Q 'On Error要放在函数或过程的第一句,不然无法捕捉所有错误'
If (Check1.Value = Unchecked) Then
HotKey vbKey2 '注册热键
Else
Check1.Value = Unchecked '加上这句'
HotKey_Flg = True '停止热键等待
Call UnregisterHotKey(Me.Hwnd, &HBCFF&)
End If
Exit Sub
Q: '错误处理要放在正常流程之后,不然扰乱正常流程'
Debug.Print "check1_error"
Stop
Resume
End Sub
If (Check1.Value = Unchecked) Then
on error goto Q:
HotKey vbKey2 '注册热键
Else
HotKey_Flg = True '停止热键等待
Call UnregisterHotKey(Me.hWnd, &HBCFF&)
Q: debug.print "check1_error"
End If