Создаём горячие клавиши для приложения.
Автор: Wolfgang
Код модуля
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Long) As Long
Declare Function DefWindowProc Lib "user32" _
Alias "DefWindowProcA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
Public Const WM_SETHOTKEY = &H32
Public Const WM_SHOWWINDOW = &H18
Public Const HK_SHIFTA = &H141 'Shift + A
Public Const HK_SHIFTB = &H142 'Shift * B
Public Const HK_CONTROLA = &H241 'Control + A
Public Const HK_ALTZ = &H45A
'Значение для комбинации клавишь должно быть
'объявлено в формате младший байт/старший байт
'В шестнадцатиричном виде число выглядит следующим образом:
'последние две цифры указывают букву (т.е.: 41 = a),
'а первый функциональную клавишу (т.е.: 01 = 1 = Shift)
Код формы
Private Sub Form_Load()
Me.WindowState = vbMinimized
'Пусть windows знает, какую горячую клавишу мы хотим
'установить для приложения, lParam здесь не используется
erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, _
HK_ALTZ, 0)
'Проверка на возможную ошибку
If erg& <> 1 Then
MsgBox "You need another hotkey", vbOKOnly, _
"Error"
End If
'Теперь скажем системе, что нужно делать, если нажата горячая
'клавиша -> показать окно!
'В данном случае wParam и lParam не используются
erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, _
0, 0)
End Sub
Когда пользователь нажмёт ALT+Z то появится Form1.
|