Anche se hai risolto...io faccio cosi:
Dim lista_tasti As New List(Of Keys)
Private Sub carica_lista()
lista_tasti.Add(Keys.LWin) 'TASTO WIN
lista_tasti.Add(Keys.RWin) 'TASTO WIN
lista_tasti.Add(262259) 'ALT + F4
'eccetera
End Sub
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:
Console.WriteLine(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 lista_tasti.Contains(keyData) = True Then
msg = Nothing
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
La SUB 'carica_lista' va eseguita all' avvio del form, come vedi i singoli tasti (es. Keys.LWin) sono già presenti nel framework, mentre per le combinazioni puoi risalire al 'keyData' con le informazioni scritte dal 'Console.WriteLine'.
ciao