| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > RegisterHotKey PrintScreen |
| Автор: Sahab 23.4.2013, 12:09 | ||
Необходимо установить хот-кей на кнопку (необязательный мод+) принтскрин.
Перехват не происходит, хотя RegisterHotKey возвращает true. В чем проблема/куда копать? Спасибо. |
| Автор: feodorv 23.4.2013, 15:29 |
| http://stackoverflow.com/questions/5815471/whats-the-purpose-of-vk-print можно прочесть, что клавиша не та - вместо VK_PRINT (0x2a) нужно использовать VK_SNAPSHOT (0x2c). Проверил, работает)))) |
| Автор: Sahab 23.4.2013, 16:50 |
| Большое благодарю. У меня попутно другой вопрос, спрошу уже здесь. При попытке использовать VK_SNAPSHOT RegisterHotKey возвращает false, как показала GetLastError = ERROR_HOTKEY_ALREADY_REGISTERED 1409 (0x581) Hot key is already registered. Я могу переназначить хоткей на свое приложение? |
| Автор: feodorv 23.4.2013, 18:06 |
| Боюсь, здесь можно только грохнуть другое приложение, зарегистрировавшее этот хоткей... Или сменить сам хоткей... PS Попытался сделать MOD_CONTROL или MOD_SHIFT (вместо MOD_ALT) с VK_SNAPSHOT, регистрирует, но реагирует всё равно на Alt-PrintScreen |
| Автор: feodorv 23.4.2013, 18:24 |
| Можно ещё использовать локальные (по отношению к процессу) акселераторы: LoadAccelerators вместо RegisterHotKey. |
| Автор: xvr 24.4.2013, 10:15 |
| Помнится, когда мне понадобилось сделать hot key во что бы то ни стало, я сначала регистрировал его как HotKey, а если не получалось, ставил low level hook на клавиатуру. |
| Автор: Sahab 26.4.2013, 11:52 |
| Спасибо. |