'Codice da inserire in un modulo
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 'Il valore della combinazione di tasti deve essere 'dichiarato nel formato LSB/MSB, 'cioe' come un numero esadecimale: le ultime due cifre 'rappresentano hanno peso minore (e.g.: 41 = a), 'le prime hanno il peso maggiore (e.g.: 01 = 1 = Shift) 'Codice da inserire in un Form Private Sub Form_Load() Me.WindowState = vbMinimized 'Adesso fai in modo che Windows sappia 'quale hotkey desideri per il tuo programma, 'la modifica di lParam non ha effetto. erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_ALTZ, 0) 'Controlla se l'operazione ha avuto successo If erg& <> 1 Then MsgBox "Ti serve una diversa hotkey", vbOKOnly, "Errore" End If 'Di' a Windows cosa dovrebbe fare quando viene premuta 'la combinazione -> mostra la finestra! 'La modifica di wParam e lParam non ha effetto. erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0) End Sub 'Quando l'utente preme ALT+Z viene mostrato il Form1. Ecco un esempio di come creare una combinazione di tasti (HotKey) per un programma! |