Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
Работаю в среде Windows. Программе требовалось реагировать на нажатие хоткеев. В итоге было решено использовать Keyboard Low Level Hook (SetWindowsHookEx, WH_KEYBOARD_LL). Для обработки колбэка, само собой, была написана DLL-ка. Всё работает отлично, но после долгого простоя программы или выхода системы из сна, колбэк перестаёт срабатывать на достаточно длительное время (Программа в этот момент работает нормально). После того как он "отвиснет" отрабатывается одно или несколько нажатий совершённых во время "подвиса". Так вот, как бороться с этими самыми "подвисаниями"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:32 |
|
||
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
Устроиться в microsoft и переписать винду) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 20:59 |
|
||
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
HellFighter, Вообще, это неправильный плод к решению данной задачи. Надо сантех таблицу акселераторов и translate message. А конкретно про этой проблеме я ничего не скажу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 00:14 |
|
||
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, А можно по подробнее? Никогда не поздно переделать =) Я вот пробовал RegisterHotKey делать, но это полностью перекрывает данное событие для остальных программ и точно так же может быть перекрыто сверху, так что оказалось весьма плохим решением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:25 |
|
||
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:25 |
|
||
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Спасибо, буду разбираться! А можно по конкретнее, чем плох выбранный мной метод отлова клавиатуры и чем данный метод лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:32 |
|
||
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
HellFighterMasterZiv, Спасибо, буду разбираться! А можно по конкретнее, чем плох выбранный мной метод отлова клавиатуры и чем данный метод лучше? SetWindowsHookEx и прочее -- это функции из отладочных в общем-то библиотек. Они сложны для использования, требуют реализации хука в виде .DLL (отдельного исполняемого модуля), требут особой дисциплины программирования и всё такое. Это как бы более низкий уровень программирования, чем просто приложение, более системный что ли. Там много возможностей, но и много требований. Просто для обработки хоткеев в приложении -- это как атомной бомбой воробьёв разгонять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:41 |
|
||
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Сейчас экспериментирую с LoadAccelerators и TranslateAccelerator . Если я правильно понял, то это будет работать только при активном окне программы и будет весьма затруднительно (если вообще возможно) сделать редактор горячих кнопок путём отлова комбинации нажатой в настоящий момент. Если так, то, к сожалению, есть необходимость в отлове хот кеев в фоновом режиме, когда программа свёрнута и не используется. Редактор так же необходим. Я всё верно понял или мои изыскания зашли не в то русло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2013, 15:54 |
|
||
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
авторСейчас экспериментирую с LoadAccelerators и TranslateAccelerator . Если я правильно понял, то это будет работать только при активном окне программы Будет работать когда сообщение от клавиатуры попадет в очередь сообщений данного приложения. Для этого не обязательно чтобы одно из окон было активно, на сколько я помню. Если я ничего не путаю, для этого фокус ввода должен находится в одном из окон данного приложения. автори будет весьма затруднительно (если вообще возможно) сделать редактор горячих кнопок путём отлова комбинации нажатой в настоящий момент. Тут как раз проблем не вижу. авторЕсли так, то, к сожалению, есть необходимость в отлове хот кеев в фоновом режиме, когда программа свёрнута и не используется. Зачем? Чтобы было ещё одно приложение, которое хочется выбросить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2013, 18:28 |
|
||
|
Keyboard Low Level Hook перестаёт срабатывать, как бороться?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Да, к сожалению нужно чтобы фокус ввода был где угодно, в том числе возможно и вне окон приложения. авторЗачем? Чтобы было ещё одно приложение, которое хочется выбросить? Ну во первых по заданию тк работаю не на себя. Во вторых это действительно удобно для некоторых приложений при некоторых usecase-ах, просто вам это видимо никогда не пригождалось =) В моём случае приложение занимается захватом экрана и фокус при этом может быть где угодно. Можно сделать как в ножницах Windows (скрывать форму при снимке), но это не всегда удобно, а для тех кому удобно уже есть ножницы =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2013, 20:05 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2019867]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
14ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 286ms |
| total: | 566ms |

| 0 / 0 |
