2010-07-29 8 views

risposta

1

In realtà i tasti come il tasto Windows non hanno un valore ASCII. Solo le chiavi che sono 'stampabili' hanno un valore ASCII. Per rilevare i tasti come il tasto Windows è necessario utilizzare gli eventi sia il KeyDown o KeyUp e utilizzare il KeyCode per rilevare quale tasto è stato pressed.KeyCode per questa chiave è 93.

Es: -

Private Sub txt_KeyDown (KeyCode As Integer, spostamento come numero intero) Se KeyCode = 93 Poi msgbox "93" End If End Sub

+1

http://forums.bit-tech.net/showthread.php?t=76247 Codici chiave vitali: http://msdn.microsoft.com/en-us/library/ms645540 – NinjaCat

+0

ho i keycode come segue nella mia tastiera, a sinistra windows = 91 e right windows = 92 – Gangadhar

2

Siamo spiacenti, si può usare il KeyCode:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode != Keys.LWin && e.KeyCode != Keys.RWin) 
      MessageBox.Show("Hello " + e.KeyData.ToString()); 
    } 
+0

O 'Keys.RWin'. – Oded

+0

Ok, è corretto. Grazie :) – Florian

+0

la sua multa ma come posso disabilitare la chiave di Windows? – nectar

0

Sono abbastanza sicuro che non hanno codici ASCII, ma hanno codici chiave: VK_LWIN e VK_RWIN per quella destra e sinistra.

Così, per esempio in Control.KeyDown si otterrà un KeyEventArgs che ha una proprietà KeyCode quale è possibile confrontare con Keys.LWin o Keys.RWin.

0

non c'è un codice ASCII, perché il WinKey non è stampabile. Tuttavia è possibile utilizzare il codice tasto virtuale di questi tasti as described in the msdn.

Problemi correlati