芬琳voc:VB入门技巧N例(3)
来源:百度文库 编辑:九乡新闻网 时间:2024/10/06 02:05:31
9. 为程序注册热键
方法二:SendMessage
- 方法一:修改注册表
- Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id _
- As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
- Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id _
- As Long) As Long
- Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, _ ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal _ wRemoveMsg As Long) As Long
- Private Declare Function WaitMessage Lib "user32" () As Long
- Private Type POINTAPI
- x As Long
- y As Long
- End Type
- Private Type Msg
- hWnd As Long
- Message As Long
- wParam As Long
- lParam As Long
- time As Long
- pt As POINTAPI
- End Type
- ' 声明常数
- Private Const MOD_ALT = &H1
- Private Const MOD_CONTROL = &H2
- Private Const MOD_SHIFT = &H4
- Private Const PM_REMOVE = &H1
- Private Const WM_HOTKEY = &H312
- Private HotKey_Fg As Boolean
- Private Sub Form_Load()
- Dim Message As Msg
- '注册 Ctrl+Y 为热键
- RegisterHotKey Me.hWnd, &HBFFF&, MOD_CONTROL, vbKeyY
- 'RegisterHotKey Me.hWnd, &HBFF2&, MOD_CONTROL, vbKeyU
- Me.Show
- Form1.Hide
- '等待处理消息
- HotKey_Fg = False
- Do While Not HotKey_Fg
- '等待消息
- WaitMessage
- '检查是否热键被按下
- If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
- Form1.Show 1
- End If
- '转让控制权,允许操作系统处理其他事件
- DoEvents
- Loop
- End Sub
- Private Sub Form_Unload(Cancel As Integer)
- HotKey_Fg = True
- '撤销热键的注册
- Call UnregisterHotKey(Me.hWnd, &HBFFF&)
- End Sub
方法二:SendMessage
- Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As _ Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
- Private Const WM_SETHOTKEY = &H32
- Private Const HOTKEYF_SHIFT = &H1
- Private Const HOTKEYF_ALT = &H4
- Private Sub Form_Load()
- Dim l As Long
- Dim wHotkey As Long
- wHotkey = (HOTKEYF_ALT) * (2 ^ 8) + 65 '定义ALT+A为热键
- l = SendMessage(Me.hwnd, WM_SETHOTKEY, wHotkey, 0)
- End Sub
VB入门技巧N例(3)
VB入门技巧N例(4)
VB入门技巧N例(5)
VB入门技巧N例(6)
VB入门技巧N例(7)
VB入门技巧N例(8)
VB入门技巧N例(9)
VB入门技巧N例(10)
VB入门技巧N例(11)
编程入门网-Vb教程+
编程入门网-VB教程:第三章-VB语言+
vb.net入门:CheckedListBox控件的使用
玉器入门知识大汇总3(图文版)n
VB爱好者乐园(VBGood) - 经验之谈 - VB编程的必备技巧
围棋入门n(完整版)
VB 窗体编程 技巧汇编 经验大全+
VB 窗体编程 技巧汇编 经验大全-
沟通的技巧n
做菜的技巧n
vb vb
编辑日志入门技巧
数码单反摄影技巧入门
数码单反摄影技巧入门
坐禅入门技巧