![]() |
Да, я тоже заподозрил там ошибку, но решил, пока сам не разберусь, не говорить)
Попробовал DirectInput8 - все тоже самое, но функционала больше. А так тоже блокирует глобльный хук. Ну что же, похоже, действительно придется делать хук и в нем формировать массив из клавиш плюс дополнительная клавиша энтера нумпада. Сделаю конвертирование сканкодов VK_ в DIK_, т.к. у меня все заточено под них. |
Quote:
Поскольку в модульном API глобальный хук один на все экземпляры программ, использующих этот API - программа не сможет изменять глобальный массив клавиш, а только получать оттуда значения. |
И все-таки меня вот ЭТО настараживает:
Quote:
|
Quote:
Я в этом вопросе собаку съел и в модульном API любой EXE-шник может выступать провайдером глобальной таблицы клавиш, доступной всем процессам Windows, использующим модульный API. Т.е. код глобального хука есть у всех одновременно запущенных EXE-шников модульного API, но в любой момент времени работает только один из этих глобальных хуков, который и обслуживает глобальную таблицу. |
Тут, как я понял, имеется в виду другое.
Библиотечная функция имеет адресное пространство, доступное всем процессам. А твой конкретный экзешник, внутри которого код хука, может и не быть доступен другим процессам. Может это зависит от конкретной системы, многоядерности или еще чего. Я с этой стороны Виндовс знаю слабо. |
Quote:
|
Quote:
|
1 Attachment(s)
Quote:
Запускаем, переходим в окно блокнота, давим все кнопки подряд и радуемся. ... |
Quote:
http://savepic.ru/3740038.png http://savepic.ru/3796377.png |
Quote:
|
| All times are GMT +4. The time now is 02:41. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.