Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: d13mon от Апрель 19, 2013, 21:34



Название: Блокировка комбинаций клавиш Windows
Отправлено: d13mon от Апрель 19, 2013, 21:34
Доброго времени,

Решаю такую задачу:

Софт должен разворачиваться на весь экран (это сделано) и комбинации клавиш Alt+Tab, Ctrl+Alt+Delete и Win + <key> не должны срабатывать для винды. То есть никаких левых окошек вроде Диспетчера задач не должно отображаться. Пока чего-то не нашел, как это реализовать. Может кто подскажет?

Обработка события QKeyEvent для главного окна ничего не дает. Винда перехватывает свои комбинации (указанные выше).


Название: Re: Блокировка комбинаций клавиш Windows
Отправлено: Serr500 от Апрель 19, 2013, 22:54
SetWindowsHookEx (http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990%28v=vs.85%29.aspx) с idHook=WH_KEYBOARD_LL


Название: Re: Блокировка комбинаций клавиш Windows
Отправлено: d13mon от Апрель 20, 2013, 02:01
SetWindowsHookEx (http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990%28v=vs.85%29.aspx) с idHook=WH_KEYBOARD_LL

Спасибо. Решил всё, кроме Ctrl+Alt+Delete. Это отдельная песня, через хук невозможно заблокировать


Название: Re: Блокировка комбинаций клавиш Windows
Отправлено: Bepec от Апрель 20, 2013, 07:16
Кнтрл Альт Делете невозможно заблокировать и слава богу. Но можно не дать никогда нажать Кнтрл Альт Делит :) Но это довольно сложно.



Название: Re: Блокировка комбинаций клавиш Windows
Отправлено: d13mon от Апрель 20, 2013, 14:05
Кнтрл Альт Делете невозможно заблокировать и слава богу. Но можно не дать никогда нажать Кнтрл Альт Делит :) Но это довольно сложно.



Как это реализовать? Через сабклассинг окна Winlogon SAS?

На данный момент сделал, чтобы по нажатию Ctrl+Alt+Del  в окне Winlogon не было возможности запустить Диспетчер задач
Кому интересно, это делается через ключ
Код:
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr:DWORD