Global Hotkay не отвечает - PullRequest
       54

Global Hotkay не отвечает

0 голосов
/ 16 апреля 2020

Я пишу программу для перемещения курсора только клавишами со стрелками. Идея состоит в том, чтобы нажать кнопку ctrl, а затем клавиши со стрелками для перемещения курсора. Я уже сделал движущуюся часть и выяснил, как получить плавное и мужское действие. У меня просто проблема, когда дело касается глобальных горячих клавиш ...

  [DllImport("user32.dll")]
    public static extern IntPtr FindWindow(String sClassName, String sAppName);

    [DllImport("user32.dll")]
    public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);

Я установил DllImport в глобальной области.

IntPtr thisWindow = FindWindow(null, "Form1");
        RegisterHotKey(thisWindow, 1, (uint)fsModifiers.Control, (uint)Keys.W);

Позже в Form1_Load я нахожу Окно, а затем устанавливает горячую клавишу, в этом случае это Control + W (0x0002 + W)

protected override void  WndProc(ref Message keyPressed)
    {
        if (keyPressed.Msg == 0x0312)
        {

        }
        base.WndProc(ref keyPressed);
    }

Последний у меня есть этот метод, который будет определять, была ли нажата горячая клавиша, но когда я нажимаю горячую клавишу, Ничего не произошло. Я пытался установить точку прерывания в (если (keyPressed.Msg == 0x0312)), но точка останова не отключена go. Почему это может быть?

...