Pergunta

Como posso saber se minha chamada para sendinput está funcionando corretamente? Eu tenho um pequeno trecho abaixo, e a mensagem nunca parece ser atingida. SendInput () retorna 1 e não há erros, então presumo que a mensagem esteja saindo corretamente.

Eu também tentei os eventos do KeyPress e Keydown e também pareço que eles também os peguem.

    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);
    }
Foi útil?

Solução

Acontece que, já que eu estava olhando a tecla Down, eu precisava ouvir o Proccmdkeys, e não apenas o evento Key Down.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top