Клавиши отправки.Модификаторы клавиш отправки и отключения
Вопрос
Я хочу, чтобы ^ N работал так же, как стрелка вниз в элементе управления деревом.Я подумал Мне просто нужно было бы добавить следующее в обработчик KeyDown:
SendKeys.Send("{Down}");
но это обрабатывается как стрелка управления вниз, поскольку клавиша управления в данный момент нажата.В страница msdn описывает, как включить модификатор control, но не как его отключить.
Спасибо, Кит
Решение
Извините, что опоздал на вечеринку, но я думаю, что нашел решение:
Сначала импортируйте SetKeyboardState:
[DllImport("user32.dll")]
public static extern bool SetKeyboardState(byte[] lpKeyState);
Затем просто вызовите его с массивом обнуленных байтов перед вызовом SendKeys.Send():
SetKeyboardState(new byte[256]);
SendKeys.Send("your key sequence");
У меня это сработало.Надеюсь, это поможет!
Другие советы
Вы можете p / вызвать keybd_event.Это позволит вам имитировать ключ, находящийся как в состоянии "вверх", так и "вниз".
Вот трудный способ сделать это.Я признаю, что это не оптимальный способ сделать это.Я уверен, вы уже знаете это.Возможно, вы захотите перегрузить метод WindProc элемента управления и использовать SendMsg Win32 Api.Вот как я раньше заставлял все работать в прежние времена.