سؤال

كيف يمكنني معرفة ما إذا كانت مكالمتي إلى SendInput تعمل بشكل صحيح؟ لدي مقتطف صغير أدناه ، ويبدو أن الرسالة لا تتعرض للضرب. SendInput () إرجاع 1 ، ولا توجد أخطاء ، لذلك أفترض أن الرسالة تخرج بشكل صحيح.

لقد جربت أيضًا أحداث 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