Клавиши отправки.Модификаторы клавиш отправки и отключения

StackOverflow https://stackoverflow.com/questions/615776

  •  03-07-2019
  •  | 
  •  

Вопрос

Я хочу, чтобы ^ 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.Вот как я раньше заставлял все работать в прежние времена.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top