Здравствуйте. Возникла надобность сИмитировать длинное нажатие клавиши, так, будто кнопку держит пользователь. Как это можно сделать?
Здравствуйте. Возникла надобность сИмитировать длинное нажатие клавиши, так, будто кнопку держит пользователь. Как это можно сделать?
Например, используя TRawEvent сначала посылаете системе событие EKeyDown, а через секунду событие EKeyUp. Это будет выглядеть как-будто пользователь зажал кнопку на секунду.
Что-то типа того?
Code:RWsSession ws; ws.Connect(); TRawEvent RawEvent; RawEvent.Set(TRawEvent::EKeyDown,aScan); ws.SimulateRawEvent(RawEvent); User::After(2000000); RawEvent.Set(TRawEvent::EKeyUp,aScan); ws.SimulateRawEvent(RawEvent); ws.Close();
Да, что-то вроде этого.
Почему-то срабатывает не так как хотелось, т.е. клавиша как бы не зажимается, например не появляются надпись копировать и вставить, а просто вылазит контекстное меню, если я эмулирую нажатие карандаша
Попробуйте использовать UserSvr::AddEvent() вместо ws.SimulateRawEvent(). И не забудьте добавить SwEvent в .mmp файл проекта