[ VB 6.0 ]
Buat Project baru dengan sebuah Form dan sebuah Module.
Di Module ketikkan :
Declare Function RegisterHotKey Lib "user32.dll" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Declare Function UnregisterHotKey Lib "user32.dll" (ByVal hwnd As Long, ByVal id As Long) As Long
Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public lHotKey As Long
Public Const WM_HOTKEY = &H312
Public Const GWL_WNDPROC = -4
Public Const MOD_ALT = &H1
Public Const MOD_CTRL = &H2
Public Const MOD_SHIFT = &H4
Public Const MOD_WIN = &H8
'id dari masing2 shortcut
Public Const idPerintah1 = 101
Public Const idPerintah2 = 102
Public Const idPerintah3 = 103
Public Function CallbackMsgs(ByVal wHwnd As Long, ByVal wMsg As Long, ByVal wp_id As Long, ByVal lp_id As Long) As Long
If wMsg = WM_HOTKEY Then
Form1.Show 'set focus
Select Case wp_id
Case idPerintah1
Form1.Caption = "Perintah Pertama"
Case idPerintah2
Form1.Caption = "Perintah Kedua"
Case idPerintah3
Form1.Caption = "Perintah Ketiga"
End Select
CallbackMsgs = 1
Else
CallbackMsgs = CallWindowProc(lHotKey, wHwnd, wMsg, wp_id, lp_id)
End If
End Function
Declare Function UnregisterHotKey Lib "user32.dll" (ByVal hwnd As Long, ByVal id As Long) As Long
Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public lHotKey As Long
Public Const WM_HOTKEY = &H312
Public Const GWL_WNDPROC = -4
Public Const MOD_ALT = &H1
Public Const MOD_CTRL = &H2
Public Const MOD_SHIFT = &H4
Public Const MOD_WIN = &H8
'id dari masing2 shortcut
Public Const idPerintah1 = 101
Public Const idPerintah2 = 102
Public Const idPerintah3 = 103
Public Function CallbackMsgs(ByVal wHwnd As Long, ByVal wMsg As Long, ByVal wp_id As Long, ByVal lp_id As Long) As Long
If wMsg = WM_HOTKEY Then
Form1.Show 'set focus
Select Case wp_id
Case idPerintah1
Form1.Caption = "Perintah Pertama"
Case idPerintah2
Form1.Caption = "Perintah Kedua"
Case idPerintah3
Form1.Caption = "Perintah Ketiga"
End Select
CallbackMsgs = 1
Else
CallbackMsgs = CallWindowProc(lHotKey, wHwnd, wMsg, wp_id, lp_id)
End If
End Function
Di bagian 'Form_Load' ketikkan :
RegisterHotKey Me.hwnd, idPerintah1, MOD_CTRL + MOD_SHIFT, Asc("P") 'Ctrl + Shift + P
RegisterHotKey Me.hwnd, idPerintah2, MOD_CTRL + MOD_SHIFT + MOD_ALT, Asc("Q") 'Ctrl + Shift + Alt + Q
RegisterHotKey Me.hwnd, idPerintah3, MOD_WIN, Asc("G") 'WinKey + G
lHotKey = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf CallbackMsgs)
RegisterHotKey Me.hwnd, idPerintah2, MOD_CTRL + MOD_SHIFT + MOD_ALT, Asc("Q") 'Ctrl + Shift + Alt + Q
RegisterHotKey Me.hwnd, idPerintah3, MOD_WIN, Asc("G") 'WinKey + G
lHotKey = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf CallbackMsgs)
Di bagian 'Form_Unload' ketikkan :
UnregisterHotKey Me.hwnd, idPerintah1
UnregisterHotKey Me.hwnd, idPerintah2
UnregisterHotKey Me.hwnd, idPerintah3
UnregisterHotKey Me.hwnd, idPerintah2
UnregisterHotKey Me.hwnd, idPerintah3
CATATAN : Jika shortcut tidak berjalan, maka terjadi error yang bisa dikarenakan karena shortcut tersebut telah dipakai Windows atau ada aplikasi lain yang terlebih dulu memakainya.
Tidak ada komentar:
Posting Komentar