![]() |
Quote:
С задержкой не пробовал, но это какие-то дикие костыли. Не должен директинпут быть кривым. Попробую инициализировать более новую версию. Ведь у меня используется интерфейс DirectInput, а не, скажем, DirectInput8, для совместимости даже с древними версиями виндовсов и дирекиксов. В принципе, функционал особо в них не менялся, но может древняя версия интерфейса как раз глючная. |
Quote:
Тот факт, что хук нормально работает при выходе из окна с DirectInput - позволяет предположить, что когда DirectInput активен - Windows обрабатывает нажатия клавиш совсем не так, как обычно и ( в частности ) глобальные хуки не вызываются вообще. |
Quote:
Кстати, как управлять этими лампочками? Эмулятор Амиги умеет. Вариант - посылать коды нажатий нумлоков и капслоков через хук - не канает, т.к. это позволяет ИНВЕРТИРОВАТЬ лампочку, но не управлять ей напрямую. |
Quote:
Code:
void SetCapsLock( bool bState )---------- Post added at 18:02 ---------- Previous post was at 17:58 ---------- Quote:
|
Quote:
Зато можно читать? Ну и то хорошо. Но тогда по-любому через хук. Странно, что он не дружит с директинпутом, тем более написанным авторами Windows. ---------- Post added at 19:26 ---------- Previous post was at 19:20 ---------- Получается, что массив состояния клавиш хранит не состояние CapsLock - нажата / не нажата, а состояние, активирована / не активирована? ---------- Post added at 19:57 ---------- Previous post was at 19:26 ---------- Хм, а вот это меня насторожило: Quote:
---------- Post added at 19:59 ---------- Previous post was at 19:57 ---------- Т.е. микрософт не рекоммендует использовать директинпут для клавиатуры, а вместо него систему сообщений. Эту тормознутую бяку (как я ее считаю). |
Quote:
Выше я привёл код функции управления состоянием лампочки CapsLock. После вызова SetCapsLock(1) лампочка гарантированно будет гореть, а после SetCapsLock(0) - гарантированно гореть НЕ будет. Какие проблемы.. Что ещё надо? Quote:
---------- Post added at 19:01 ---------- Previous post was at 18:59 ---------- Quote:
|
Мне директинпут очень нравится. Он быстрый, дает состояние ВСЕХ клавиш быстренько в одном массиве. А так же различает Enter на основной и дополнительной клавиатурах.
|
Quote:
Code:
BYTE keyState[256];Если какой-то информации не хватает - глобальный хук можно не отключать и он всегда будет в курсе всех нажатий, устанавливая для программы любые флаги, какие надо. |
А эта функция относится к чему?
Связана ли она с фокусом окна? Позволяет ли отличить Enter на основной и доп-клавиатуре? С какой версии виндовс она появилась? ---------- Post added at 20:23 ---------- Previous post was at 20:16 ---------- Quote:
|
Quote:
Quote:
Quote:
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.