Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ и WinAPI
Войти
Регистрация
Восстановить пароль
 
eliseevrci
1 / 1 / 0
Регистрация: 20.03.2018
Сообщений: 2
#1

Эмуляция нажатия клавиши клавиатуры - C++ WinAPI

20.03.2018, 22:28. Просмотров 185. Ответов 4
Метки нет (Все метки)

Здравствуйте!

Возникла задача написания сервиса Windows, который, в том числе, посылает код виртуально нажимаемой кнопки приложениям, работающим в экранном режиме. К сожалению функция keybd_event не работает из приложений, написанных как службы Windows. В случае если моё приложение работает как консольное, необходимый эффект достигается.
Возможно кто-то сталкивался с этой задачей и сможет мне помочь. Чем заменить keybd_event в случае приложения-сервиса?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2018, 22:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Эмуляция нажатия клавиши клавиатуры (C++ WinAPI):

Эмуляция нажатия клавиши
Подскажите как отправить окну сообщение, что нужно нажать клавишу Enter? Точнее...

Эмуляция нажатия клавиши
Подскажите плс как емулировать нажатие клавиши в неактивном окне?

Эмуляция нажатия клавиши и передача ее в окно
Приветствую! Необходимо имитировать нажатие клавиши shift и передать в...

Эмуляция нажатия левой клавиши мыши
добрый день. Написал программу, которая через 5 секунд берет дескриптор окна...

Эмуляция нажатия клавиши в чужой программе., Windows XP
Уважаемые, может сможет кто-нибудь подсказать как справиться с такой проблемой....

Эмуляция нажатия клавиш
здрасте.мне нужно проэмулировать нажатие кнопок мыши и нажатий клавиш в...

4
Xo66um
18 / 18 / 15
Регистрация: 19.03.2018
Сообщений: 45
20.03.2018, 22:53 #2
Как вариант, можете попробовать SendInput.
1
Antikl
с++
274 / 270 / 147
Регистрация: 15.07.2015
Сообщений: 1,480
Завершенные тесты: 6
20.03.2018, 23:15 #3
C++
1
2
3
4
if(GetAsyncKeyState(key)& 0x8000)
{
        
}
1
eliseevrci
1 / 1 / 0
Регистрация: 20.03.2018
Сообщений: 2
21.03.2018, 22:20  [ТС] #4
To Хоббит: спасибо, попробовал. Эффект тот-же. В режиме сервиса выдаёт ошибку 183. Я так думаю что, в связи с тем что нет окна, для сервисов не поддерживается поток клавиатуры. Сегодня решил задачу как приложение для консоли устанавливаемое в автозагрузку и со спрятанным окном, с функцией keybd_event(). В этом режиме работает как надо.
Если мне придут ещё какие то мысли и я решу это, напишу.

Добавлено через 1 час 23 минуты
To Antikl: честно говоря не понял. Приложение, которому я отпрвляю нажатие кнопок, стороннее.
1
Antikl
с++
274 / 270 / 147
Регистрация: 15.07.2015
Сообщений: 1,480
Завершенные тесты: 6
22.03.2018, 00:17 #5
Функция GetAsyncKeyState определяет, является ли клавиша отпущенной или нажатой во время вызова функции и была ли клавиша нажата после предыдущего вызова GetAsyncKeyState.
Key Устанавливает одно из 256 возможных кодов виртуальной клавиши
0
22.03.2018, 00:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2018, 00:17
Привет! Вот еще темы с решениями:

Не работает эмуляция нажатия клавиш
while (true) { if (GetAsyncKeyState(VK_RSHIFT)== -32767 && progWorking ==...

Эмуляция нажатия кнопки джойстиком Xbox
Купил шлем виртуальной реальности Oculus Rift без дистанционки и без джойстика...

Подскажите почему эмуляция нажатия работает не во всех играх?
Код самого нажатия: if((k!=1 && k==P) ) //81=Q=0x51 { if(A==0)...

Эмуляция клавиатуры и мыши
Доброго времени суток! Столкнулся с такой проблемой: нужно эмулировать нажатия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru