none
Pulsación de teclas RRS feed

  • Pregunta

  • Hola:

    He probado este código para detectar cunado se pulsa una tecla aunque se esté en otra ventana:

    Private Const VK_F11 As UInteger =&H7A
    Private Const WM_HOTKEY As Integer = &H312
    
        Protected Overrides Sub WndProc(ByRef m As Message)
            If m.Msg = WM_HOTKEY Then
                If Me.WindowState = FormWindowState.Minimized Then
                    Me.WindowState = FormWindowState.Normal
                    Exit Sub
                End If
    
                If functions.ProcessHasFocus = False Then
                    Me.Activate()
                    Exit Sub
                End If
    
                If Me.WindowState = FormWindowState.Normal Then
                    Me.WindowState = FormWindowState.Minimized
                    Exit Sub
                End If
    
            End If
    
            MyBase.WndProc(m)
        End Sub
    
     Private Sub Main_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not RegisterHotKey(Me.Handle, 0, 0, VK_F11) Then
                MessageBox.Show("Tecla ya asignada")
            End If
    End sub

    El código funciona correctamente , pero cuando estoy en un juego a pantalla completa, no funciona.

    ¿Alguna explicaión y/o solución?

    Gracias

    • Cambiado Enrique M. Montejo viernes, 12 de junio de 2015 9:43 Pregunta relacionada con aplicación de Windows Forms.
    miércoles, 10 de junio de 2015 12:13

Todas las respuestas

  • Hola alecamar,

    Gracias por consultar en los foros. Te comparto el link de MSDN en donde se habla de esta función, RegisterHotKey function, te recomiendo para verificar el buen funcionamiento del ejemplo, primero lo corras sin modificación alguna.

    Así como WM_HOTKEY message, que te servirá para mostrar un mensaje al usuario respect a nuestra function antes mencionada.

    Espero te sean de utildad.

    Saludos,

    Karen.

    _________________


    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, 10 de junio de 2015 20:58
  • El codigo funciona perfectamente cunado estoy en una ventana cualquiera, al pulsar F11 se muestra y se minimiza como debe.

    Pero al estar en un juego a pantalla completa, no se detecta la pulsación de la tecla.

    Gracias

    sábado, 13 de junio de 2015 13:39
  • Hola:

    Hace algunos días pregunté cómo detectar una pulsación de teclas cuando el formulario estaba minimizado. Conseguí hacer que funcione, pero me he encontrado con un problema:

    Cuando estoy en un juego a pantalla completa, no se detecta ésta pulsación. ¿

    Alguna alternativa para que sean detectados?

    Gracias

    PD: Uso RegisterHotKey y WndProc

    sábado, 13 de junio de 2015 17:36