Intercetti i singoli tasti e non la combinazione, il valore è 262259. Inoltre devi lavorare su "msg" è non su "keyData" perchè il tasto è "contenuto" in msg, quindi per Alt+F4 basta una riga:Originariamente inviato da mvent
Ecco, ho trovato anche questa funzione, da mettere sul form:
riesce ad intercettare tutti i tasti ma ho provato a annullare le due variabili nel caso di pressione di ALT e di F4 e non funziona...codice:Protected Overrides Function ProcessCmdKey _ (ByRef msg As System.Windows.Forms.Message, _ ByVal keyData As System.Windows.Forms.Keys) As Boolean '******************************************************** 'DA COMMENTARE IN RELEASE 'questo: MsgBox(keyData & " " & keyData.ToString) 'in fase di debug scrive nell'output le informazioni 'sul tasto premuto, serve per identificare il valore '"keydata" da inserire nella lista. '******************************************************** If keyData = 262162 Then msg = Nothing 'tasto ALT If keyData = 262162 Then keyData = 0 'tasto ALT If keyData = 115 Then keyData = 0 'tasto F4 If keyData = 115 Then msg = Nothing 'tasto F4 Return MyBase.ProcessCmdKey(msg, keyData) End Function
![]()
In ogni caso, anche usando WndProc, puoi intervenire solo sul tuo programma mentre per tutto quello che è gestito direttamente da Windows devi usare per forza le sue API.codice:If keyData = 262259 Then msg = Nothing
Ciao