0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 15
|
|
1 | |
Отслеживание нажатий клавиш, когда окно программы не в фокусе25.07.2014, 17:57. Показов 9420. Ответов 21
Метки нет (Все метки)
Доброго времени суток, цель - написать программу, выполняющую код функции (напишу самостоятельно) по нажатию клавиши. Функций должно быть несколько, соответственно и клавиш тоже. При этом программа должна перехватывать нажатия, не будучи в фокусе. А вернее, в момент, когда работает полноэкранное приложение
Порыскав в сети, вычитал, что единственный способ - установить хуки. Сначала пробовал написать подобное на Python с помощью pyHook, но программа не работала, если с нее спадал фокус. Прошу помощи в написании подобного на C++, хотя бы элементарный код, далее подредактирую сам
0
|
25.07.2014, 17:57 | |
Ответы с готовыми решениями:
21
Считывание нажатий клавиш, когда программа не в фокусе Отслеживание нажатий комбинаций клавиш Отслеживание и подсчет правильных и неправильных нажатий клавиш Отслеживание нажатий клавиш внутри процедуры/цикла |
Master of Orion
|
|||||||||||
25.07.2014, 18:26 | 2 | ||||||||||
Canckt, создаем процедуру обработки нажатий:
1
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 15
|
|||||||||||
26.07.2014, 18:39 [ТС] | 3 | ||||||||||
Psilon, Спасибо, а какие библиотеки надо включить, чтобы программа работала?
В таком виде:
0
|
26.07.2014, 19:13 | 4 |
Знакомтесь, GetAsyncKeyState().
0
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 15
|
|
26.07.2014, 22:42 [ТС] | 5 |
raxp, Почитал описание. Правильно я понял, что эта функция не сработает, если программа будет свернута, а активно будет другое полноэкранное приложение?
0
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 15
|
||||||
27.07.2014, 04:53 [ТС] | 7 | |||||
Psilon, С горем пополам победил ошибки. Код вышел следующий:
0
|
Заблокирован
|
|
27.07.2014, 06:57 | 8 |
Ну ты ещё фильтр драйвер напиши
raxp уже ответил на вопрос, если речь идёт про WinApi, то следуют использовать GetAsyncKeyState, эта функция ловит состояние клавиатуры вне зависимости от фокуса мэйн виндуа (часто используется в геймдеве)
0
|
Master of Orion
|
||||||
27.07.2014, 11:26 | 10 | |||||
raxp, ладно, ладно, уговорили
вроде, как-то так:
0
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 15
|
|
27.07.2014, 14:12 [ТС] | 11 |
raxp, Psilon, Спасибо, полезная конструкция. Работает без фокуса, работает в свернутом виде, но когда открываю приложение, на фоне которого программа должна работать - нажатия ловить перестает
0
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 15
|
|
27.07.2014, 18:09 [ТС] | 13 |
raxp, я на самом старте изучения C++, потому из Вашей фразы ничего не понял
0
|
27.07.2014, 19:00 | 14 |
...а вы не на С++ напирайте, а на WinAPI в MSDN.
http://msdn.microsoft.com/ru-r... .110).aspx http://msdn.microsoft.com/ru-r... s.85).aspx
1
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 15
|
|
27.07.2014, 19:02 [ТС] | 15 |
raxp, WinAPI дается легче. Но GetAsyncKeyState() для моей задачи на сработало
0
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 15
|
||||||
27.07.2014, 19:10 [ТС] | 17 | |||||
Собственно, пробовал то, что написал товарищ выше
0
|
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 15
|
|
27.07.2014, 20:09 [ТС] | 19 |
raxp, то есть Вы считаете, что стоит модернизировать вышеприведенный код путем помещения цикла for в отдельный поток или таймер?
0
|
27.07.2014, 22:18 | 20 |
...цикл выкинуть, в поток запилить непосредственно опрос, слип выкинуть.
0
|
27.07.2014, 22:18 | |
27.07.2014, 22:18 | |
Помогаю со студенческими работами здесь
20
Отслеживание нажатий клавиш на клавиатуре после нажатия на кнопку Отловить нажатие определенной комбинации клавиш, даже когда программа не в фокусе Перехватить клик по клавише на клавиатуре, когда окно не в фокусе Отправка нажатий клавиш в неактивное окно - SendMessage Отправка нажатий клавиш в окно стороннего приложения Включение действий программы, когда она не в фокусе, по средством заранее заданной клавиши Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |