Горячая клавиша Re-assign/override (Win + L) для блокировки окон

Действительно ли возможно повторно присвоить горячую клавишу Win+L другому исполняемому файлу/ярлыку?

Пример использования - я хотел бы выключить монитор своего ноутбука, как только он заблокирован. Я знаю об исполняемом файле, который может заблокировать и выключить монитор, но я не хочу изменять способ, которым система заблокирована (путем запущения программы явно или некоторым другим ярлыком). Было бы лучше, если Win+L может быть присвоен этому исполняемому файлу.

24
задан phuclv 29 June 2019 в 16:24
поделиться

2 ответа

Win + L является системой присвоенная горячая клавиша и нет никакой опции отключить ее. Это означает, что нет никакого пути к приложению для обнаружения его, если Вы не используете глобальный захват клавиатуры низкого уровня (WH_KEYBOARD_LL). Это работает в XP SP3; не протестировали его в Vista хотя:

LRESULT CALLBACK LowLevelKeyboardProc(int code, WPARAM wparam, LPARAM lparam) {
    KBDLLHOOKSTRUCT& kllhs = *(KBDLLHOOKSTRUCT*)lparam;
    if (code == HC_ACTION) {
        // Test for an 'L' keypress with either Win key down.
        if (wparam == WM_KEYDOWN && kllhs.vkCode == 'L' && 
            (GetAsyncKeyState(VK_LWIN) < 0 || GetAsyncKeyState(VK_RWIN) < 0))
        {
            // Place some code here to do whatever you want.
            // ...

            // Return non-zero to halt message propagation
            // and prevent the Win+L hotkey from getting activated.
            return 1;
        }
    }
    return CallNextHookEx(0, code, wparam, lparam);
}

Примечание, в котором Вы нуждаетесь низкоуровневый захват клавиатуры. нормальный захват клавиатуры (WH_KEYBOARD) не поймает события горячей клавиши.

12
ответ дан phuclv 28 November 2019 в 23:10
поделиться

Похож на Вас, не может.

можно отключить все встроенные горячие клавиши Windows кроме Win+L и Win+U путем внесения следующего изменения в реестр (это должно работать над всеми Ose, но перезагрузка, вероятно, требуется):

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer NoWinKeys REG_DWORD 0x00000001 (1)

( http://www.autohotkey.com/docs/misc/Override.htm )

, Но Вы могли попытаться использовать Тонкую настройку UI. Под объектом структурного вида Проводника снимите флажок с горячими клавишами "Enabled Windows+X". Hoekey также мог бы работать, не попробовали его. Источник .

3
ответ дан ine 28 November 2019 в 23:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: