как эмулировать нажатие клавиши на клавиатуре?
От: Svetlana_V Россия  
Дата: 21.05.06 19:02
Оценка:
Мне надо написать драйвер-фильтр для класса клавиатуры. Через call-back функцию запроса MJ_READ я узнаю сканкоды нажатых клавиш. Моя задача — при определенной комбинации нажатых клавиш сэмитировать нажатие заданной последовательности клавиш.
Подскажите, пожалуйста, как мне можно сэмитировать нажатие последовательности клавиш?

Может ли один IRP-пакет нести информацию о нажатии больше чем одной клавиши, то есть можно ли просто увеличить размер
IRP->AssociatedIrp.SystemBuffer и записать в массив

IRP->AssociatedIrp.SystemBuffer[i].MakeCode

IRP->AssociatedIrp.SystemBuffer[i].Flags

столько "нажатых" и "отжатых" клавиш, сколько мне нужно? При этом записав IRP->IoStatus.Information = n * sizeof(KEYBOARD_INPUT_DATA);
Воспримет ли система это как нажатие нескольких клавиш последовательно? Я пробовала так делать, но у меня не получалось — система зависала или просто ничего не выводила на "горячую" комбинацию. Если так можно сделать, то где могут быть ошибки?

Спасибо за внимание.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.