none
(Ayuda) Crear combinacion de letras para abrir un form RRS feed

  • Pregunta

  • Hola,

    Me gustaría crear una serie de combinación de teclas, que cuando abra un form y dentro de el pulse por ejemplo MAYUS + 8 por ejemplo o MAYUS + 8 + F9 se abra un form.

    ¿Cómo podría hacerlo?

    miércoles, 21 de noviembre de 2018 11:28

Respuestas

  • ' Add Timer 1;  enabled = true  (Espero te sirva)
    'Code : 
    Public Class Form1
        Const VK_CTR = &H11 'IZDO
        Const VK_MENU = &H12   'Alt 
    
        Const VK_A = &H41
        Const VK_B = &H42
        Const VK_C = &H43
        Const VK_D = &H44
        Const VK_E = &H45
        Const VK_F = &H46
        Const VK_G = &H47
        Const VK_H = &H48
        Const VK_I = &H49
        Const VK_J = &H4A
        Const VK_K = &H4B
        Const VK_L = &H4C
        Const VK_M = &H4D
        Const VK_N = &H4E
        Const VK_O = &H4F
        Const VK_P = &H50
        Const VK_Q = &H51
        Const VK_R = &H52
        Const VK_S = &H53
        Const VK_T = &H54
        Const VK_U = &H55
        Const VK_V = &H56
        Const VK_W = &H57
        Const VK_X = &H58
        Const VK_Y = &H59
        Const VK_Z = &H5A
    
        Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
    
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            If (GetAsyncKeyState(VK_CTR)) And (GetAsyncKeyState(VK_L)) Then
                MsgBox("Ctrl + L")
                Form2.show()
                me.hide()
    
            ElseIf (GetAsyncKeyState(VK_CTR)) And (GetAsyncKeyState(VK_K)) Then
          MsgBox("Ctrl + K")
                Form2.show()
                me.hide()
               
            ElseIf (GetAsyncKeyState(VK_CTR)) And (GetAsyncKeyState(VK_X)) Then
    
              MsgBox("Ctrl + X")
                Form2.show()
                me.hide()
    
            ElseIf (GetAsyncKeyState(VK_CTR)) And (GetAsyncKeyState(VK_D)) And (GetAsyncKeyState(VK_MENU)) Then
    
                MsgBox("Ctrl + D")
                Form2.show()
                me.hide()
    
            End If
        End Sub

    • Propuesto como respuesta LuisMD99 domingo, 25 de noviembre de 2018 2:21
    • Marcado como respuesta Pablo Rubio lunes, 26 de noviembre de 2018 18:31
    domingo, 25 de noviembre de 2018 2:21

Todas las respuestas

  • Hola  Symantecc

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te recomiendo ingresar al siguiente enlace donde se expone una pequeña guía que te puede ser de utilidad para resolver el problema que presentas.

    https://docs.microsoft.com/es-es/dotnet/framework/winforms/controls/how-to-create-access-keys-for-windows-forms-controls-using-the-designer

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 21 de noviembre de 2018 16:23
  • Hola. Establece la propiedad  del formulario para que sea éste el que capture las pulsaciones de las teclas antes que cualquier otro control interno. Luego maneja el evento KeyDown

    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
        If e.Control AndAlso e.Alt AndAlso e.Shift AndAlso e.KeyCode = Keys.F12 Then MessageBox.Show("My message")
    End Sub

    Es un ejemplo


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    • Editado Sergio Parra miércoles, 21 de noviembre de 2018 20:18
    • Propuesto como respuesta Sergio Parra lunes, 26 de noviembre de 2018 20:27
    miércoles, 21 de noviembre de 2018 20:16
  • ' Add Timer 1;  enabled = true  (Espero te sirva)
    'Code : 
    Public Class Form1
        Const VK_CTR = &H11 'IZDO
        Const VK_MENU = &H12   'Alt 
    
        Const VK_A = &H41
        Const VK_B = &H42
        Const VK_C = &H43
        Const VK_D = &H44
        Const VK_E = &H45
        Const VK_F = &H46
        Const VK_G = &H47
        Const VK_H = &H48
        Const VK_I = &H49
        Const VK_J = &H4A
        Const VK_K = &H4B
        Const VK_L = &H4C
        Const VK_M = &H4D
        Const VK_N = &H4E
        Const VK_O = &H4F
        Const VK_P = &H50
        Const VK_Q = &H51
        Const VK_R = &H52
        Const VK_S = &H53
        Const VK_T = &H54
        Const VK_U = &H55
        Const VK_V = &H56
        Const VK_W = &H57
        Const VK_X = &H58
        Const VK_Y = &H59
        Const VK_Z = &H5A
    
        Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
    
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            If (GetAsyncKeyState(VK_CTR)) And (GetAsyncKeyState(VK_L)) Then
                MsgBox("Ctrl + L")
                Form2.show()
                me.hide()
    
            ElseIf (GetAsyncKeyState(VK_CTR)) And (GetAsyncKeyState(VK_K)) Then
          MsgBox("Ctrl + K")
                Form2.show()
                me.hide()
               
            ElseIf (GetAsyncKeyState(VK_CTR)) And (GetAsyncKeyState(VK_X)) Then
    
              MsgBox("Ctrl + X")
                Form2.show()
                me.hide()
    
            ElseIf (GetAsyncKeyState(VK_CTR)) And (GetAsyncKeyState(VK_D)) And (GetAsyncKeyState(VK_MENU)) Then
    
                MsgBox("Ctrl + D")
                Form2.show()
                me.hide()
    
            End If
        End Sub

    • Propuesto como respuesta LuisMD99 domingo, 25 de noviembre de 2018 2:21
    • Marcado como respuesta Pablo Rubio lunes, 26 de noviembre de 2018 18:31
    domingo, 25 de noviembre de 2018 2:21