Вопрос

Как узнать, правильно ли работает мой вызов SendInput?У меня есть небольшой фрагмент ниже, и сообщение, похоже, так и не было получено.SendInput() возвращает 1, ошибок нет, поэтому я предполагаю, что сообщение отправляется правильно.

Я также пробовал события Form KeyPress и KeyDown, но, похоже, я их тоже никогда не получал.

    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);
    }
Это было полезно?

Решение

Оказывается, поскольку я искал клавишу «вниз», мне нужно было слушать ProcCmdKeys, а не только событие «нажатие клавиши».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top