Я пишу модульный тест, и определенная функция будет вызываться глубоко в стеке, если (Control.ModifierKeys == Keys.Control). Я могу добавить флаг или что-то еще для конкретного случая запуска модульного теста, но это было бы слишком грязно! Как я могу установить ModifierKeys в Ctrl через код? Я использую С#.Net 4.0.
Как удерживать клавишу Ctrl в коде
comment
Попробуйте это, вы должны найти ответ stackoverflow.com /questions/4705428/c-sharp-is-ctrl-key-down
- person Taldir   schedule 31.05.2012
Ответы (2)
Вы можете использовать P/Invoke для вызова keybd_event
функция для синтеза нажатий клавиш.
Сначала объявите следующее:
[DllImport("user32.dll", SetLastError = true)]
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
public const uint KEYEVENTF_KEYUP = 0x02;
public const uint VK_CONTROL = 0x11;
Затем в своем тесте используйте:
// Press the Control key.
keybd_event(VK_CONTROL, 0, 0, 0);
try
{
// Perform test.
}
finally
{
// Release the Control key.
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
}
person
Douglas
schedule
31.05.2012
Удерживать: Keyboard.PressModifierKeys(ModifierKeys.Control);
Релиз: Keyboard.ReleaseModifierKeys(ModifierKeys.Control);
person
Max
schedule
26.02.2013