我正在编写一个程序来仅用箭头键移动光标。这个想法是按 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)) 中设置一个断点,但断点不会消失。为什么会这样?