кнопка ctrl виртуальной клавиатуры

Я хочу спросить, зачем размещать мою кнопку CTRL на виртуальной клавиатуре. Я использую код C #: keybd_event (ctrl, 0, KEYEVENTF_EXTENDEDKEY, 0);

 keybd_event(A, 0, KEYEVENTF_EXTENDEDKEY, 0);
    Task.Delay(TimeSpan.FromMilliseconds(100)).Wait();
    keybd_event(ctrl, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(A, 0, KEYEVENTF_KEYUP, 0);

переменные

public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag
public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag
public const int A = 0x41; //A key code
public const int ctrl = 0xA2; //ctrl key code

Когда я выполняю код, все время была нажата кнопка Ctrl. Я нажимаю правую кнопку ctrl на клавиатуре, и проблема исчезает.

может кто знает как решить проблему. При выполнении кода кнопка CTRL не нажимается.


person Šarūnas Zu    schedule 31.07.2018    source источник


Ответы (1)


попробуйте использовать 0x0003 в качестве флага клавиатуры для ctrl / shift / alt

person Божидар Йовчев    schedule 23.09.2018
comment
ну в основном он использует public const int KEYEVENTF_KEYUP = 0x0002; как флаг клавиатуры ... так что на клавиатуре есть два Ctrls, Shift и Alts, и только вчера вечером я пытался добавить shift на мою виртуальную клавиатуру, но с 0x0002 его не удалось освободить, поэтому я попробовал 0x0003 в качестве флага клавиатуры, и это сработало .. В основном используйте 0x0003 для клавиш Ctrl, Shift и Alt, поскольку эти кнопки имеют размер x2 на нормальной клавиатуре, а флаги 0x0001 и 0x0002 указывают на левую / правую кнопку, а 0x0003 освобождает их - person Божидар Йовчев; 24.09.2018