Pregunta

¿Cómo puedo saber si mi llamada a SendInput está funcionando correctamente? Tengo un pequeño fragmento a continuación, y el mensaje nunca parece ser golpeado. SendInput () devuelve 1, y no hay ningún error, así que supongo que el mensaje va a cabo correctamente.

También he probado los eventos de formulario KeyPress y KeyDown, y me parece que nunca obtener aquellos tampoco.

    private void button1_Click(object sender, EventArgs e)
    {
        INPUT input = new INPUT();
        input.mkhi.ki.wVk = (byte)System.Windows.Forms.Keys.B;
        uint result = SendInput(1, ref input, Marshal.SizeOf(new INPUT()));
    }
    protected override void WndProc(ref Message m)
    {
        if (m.Msg == WM_KEYDOWN)
        {
            Console.WriteLine("GotIt");
        }
        base.WndProc(ref m);
    }
¿Fue útil?

Solución

Resulta que desde que estaba buscando la llave hacia abajo, necesitaba escuchar ProcCmdKeys, y no sólo el evento de tecla pulsada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top