Отключить ВСЕ системные горячие клавиши на уровне Windows невозможно без использования сторонних утилит или физической модификации клавиатуры. Операционная система жестко прошивает обработчики низкоуровневых хуков для комбинаций с модификаторами (Ctrl, Shift, Alt, Win).
Подходы:
1. Отключение Win-комбинаций через групповые политики (работает только в Pro/Enterprise)
Запускаешь gpedit.msc, идешь в User Configuration > Administrative Templates > Windows Components > File Explorer. Включаешь политику "Turn off Windows Key hotkeys".
2. Редактирование реестра (универсальный метод)
Для отключения клавиши Win создай параметр в HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer:
- Имя:
NoWinKeys
- Тип: REG_DWORD
- Значение: 1
Это убьет все сочетания с Win (Win+D, Win+E, Win+L и т.д.).
3. AutoHotkey для выборочного блокирования
Скачиваешь AutoHotkey, создаешь скрипт:
#d::return
^+Esc::return
#l::return
Первая строка блокирует Win+D, вторая Ctrl+Shift+Esc, третья Win+L. Символ ::return означает "перехватить и ничего не делать".
4. SharpKeys для физического переназначения
Утилита позволяет на уровне драйвера клавиатуры переназначить клавиши. Можешь например переназначить Win на Ctrl, тогда все Win-комбинации превратятся в Ctrl-комбинации.
Важно: полное отключение системных хоткеев (вроде Ctrl+Alt+Del) заблокировано Microsoft на уровне ядра из соображений безопасности. SAC (Secure Attention Sequence) нельзя перехватить даже из kernel mode.
Огромное спасибо за развернутый ответ! Попробую через AutoHotkey, не хочу винду совсем лишать функциональности