0

我正在编写一个程序来仅用箭头键移动光标。这个想法是按 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);
    }

最后我有这个方法可以检测是否按下了热键,但是当我按下热键时,什么也没有发生。我试图在 (if (keyPressed.Msg == 0x0312)) 中设置一个断点,但断点不会消失。为什么会这样?

4

0 回答 0