Я пишу программу для перемещения курсора только клавишами со стрелками. Идея состоит в том, чтобы нажать кнопку 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. Почему это может быть?