Usuário com melhor resposta
Detectar tecla(s) precionadas.

Pergunta
-
Tentei usar
if KeyDown
if e.KeyCode = ....
Mas nao da certo , tenho que importar algo ?
- Editado Eduardo Henrique Antunes segunda-feira, 17 de setembro de 2012 16:16
Respostas
-
Para o CTRL + ALT + DEL basta usar o código abaixo no KeyUP do seu form (não esqueça de mudar KeyPreview para true)
Private Sub SeuForm_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp If e.Control AndAlso e.Alt AndAlso e.KeyCode = Keys.Delete Then MessageBox.Show("CTRL+ALT+DEL") End If End Sub
Tem mais esse exemplo que achei na NET:
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Const WM_KEYDOWN As Integer = &H100 Const WM_SYSKEYDOWN As Integer = &H104 If ((msg.Msg = WM_KEYDOWN) Or (msg.Msg = WM_SYSKEYDOWN)) Then Select Case (keyData) Case Keys.A To Keys.Z '<--- Catch the Keys you want MessageBox.Show("You pressed " & ChrW(keyData)) '<--- Then do something Case Keys.Right Me.Text = "Right Arrow Captured" Case Keys.Left Me.Text = "Left Arrow Captured" Case Keys.Down Me.Text = "Down Arrow Captured" Case Keys.Up Me.Text = "Up Arrow Captured" Case Keys.Tab Me.Text = "Tab Key Captured" Case (Keys.Control Or Keys.N) Me.Text = " + N Captured" Case (Keys.Alt Or Keys.Z) Me.Text = " + Z Captured" Case Keys.NumPad0 Me.Text = "Num Pad '0' Captured" Case Keys.Delete MessageBox.Show("Delete Captured") Case Keys.NumLock End Select End If Return MyBase.ProcessCmdKey(msg, keyData) End Function
Esses exemplos devem lhe ajudar a fazer para outras teclas.
Att.,
Jeimes Ribeiro
"Caso a resposta seja útil, marque como resposta."
- Editado Jeimes Ribeiro segunda-feira, 17 de setembro de 2012 16:53
- Marcado como Resposta Eduardo Henrique Antunes segunda-feira, 17 de setembro de 2012 16:57
Todas as Respostas
-
-
Seria bom todas. Mas especificamente o ctrl,alt,del
- Editado Eduardo Henrique Antunes segunda-feira, 17 de setembro de 2012 16:22
-
Para o CTRL + ALT + DEL basta usar o código abaixo no KeyUP do seu form (não esqueça de mudar KeyPreview para true)
Private Sub SeuForm_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp If e.Control AndAlso e.Alt AndAlso e.KeyCode = Keys.Delete Then MessageBox.Show("CTRL+ALT+DEL") End If End Sub
Tem mais esse exemplo que achei na NET:
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Const WM_KEYDOWN As Integer = &H100 Const WM_SYSKEYDOWN As Integer = &H104 If ((msg.Msg = WM_KEYDOWN) Or (msg.Msg = WM_SYSKEYDOWN)) Then Select Case (keyData) Case Keys.A To Keys.Z '<--- Catch the Keys you want MessageBox.Show("You pressed " & ChrW(keyData)) '<--- Then do something Case Keys.Right Me.Text = "Right Arrow Captured" Case Keys.Left Me.Text = "Left Arrow Captured" Case Keys.Down Me.Text = "Down Arrow Captured" Case Keys.Up Me.Text = "Up Arrow Captured" Case Keys.Tab Me.Text = "Tab Key Captured" Case (Keys.Control Or Keys.N) Me.Text = " + N Captured" Case (Keys.Alt Or Keys.Z) Me.Text = " + Z Captured" Case Keys.NumPad0 Me.Text = "Num Pad '0' Captured" Case Keys.Delete MessageBox.Show("Delete Captured") Case Keys.NumLock End Select End If Return MyBase.ProcessCmdKey(msg, keyData) End Function
Esses exemplos devem lhe ajudar a fazer para outras teclas.
Att.,
Jeimes Ribeiro
"Caso a resposta seja útil, marque como resposta."
- Editado Jeimes Ribeiro segunda-feira, 17 de setembro de 2012 16:53
- Marcado como Resposta Eduardo Henrique Antunes segunda-feira, 17 de setembro de 2012 16:57
-