На моем ноутбуке есть физическая кнопка отключения звука (F8).
- Это физический или программный переключатель?
- Я пытаюсь понять, может ли вредоносное ПО отключить кнопку отключения звука или нет.
Спасибо
решение1
Программное обеспечение отключено. Оно отключено Windows. Электроника клавиатуры посылает клавишу отключения звука в Windows, Windows делает то, что нужно. Такие типы клавиш известны как AppKeys.
Клавиши клавиатуры для просмотра и других функций
Microsoft Windows обеспечивает поддержку клавиатур со специальными клавишами для функций браузера, медиа-функций, запуска приложений и управления питанием. WM_APPCOMMAND поддерживает дополнительные клавиши клавиатуры. Кроме того, функция ShellProc модифицирована для поддержки дополнительных клавиш клавиатуры.
Маловероятно, что дочернее окно в компонентном приложении сможет напрямую реализовать команды для этих дополнительных клавиш клавиатуры. Поэтому при нажатии одной из этих клавиш DefWindowProc отправит сообщение WM_APPCOMMAND окну. DefWindowProc также передаст сообщение WM_APPCOMMAND своему родительскому окну. Это похоже на то, как контекстные меню вызываются правой кнопкой мыши, то есть DefWindowProc отправляет сообщение WM_CONTEXTMENU при щелчке правой кнопкой мыши и пересылает его своему родительскому окну. Кроме того, если DefWindowProc получает сообщение WM_APPCOMMAND для окна верхнего уровня, он вызовет хук оболочки с кодом HSHELL_APPCOMMAND.
Windows также поддерживает Microsoft IntelliMouse Explorer, мышь с пятью кнопками. Две дополнительные кнопки поддерживают навигацию браузера вперед и назад. Для получения дополнительной информации см. XBUTTONs.
https://docs.microsoft.com/en-us/windows/win32/inputdev/about-keyboard-input
Итак, программа с фокусом получает клавишу, она, скорее всего, не запрограммирована на ее обработку (если только она не применяется напрямую, например, Media Player). Программы вызывают DefWindowProc для всех команд, которые они не обрабатывают (или должны). DefWindowProc превратит ее в WM_AppCommand (как другие клавиши/меню превращаются в WM_Command). Если программа вызовет DefWindowProc с этим, Windows уведомит любую программу, которая запросила уведомление. Если ничто другое не хочет ее отключать, то Windows это сделает.