Переназначить / переопределить горячую клавишу (Win + L) для блокировки окон

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

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

5 ответов

Вам необходимо установить следующий раздел реестра, чтобы полностью отключить функцию блокировки Windows:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableLockWorkstation"=dword:00000001

И перезагрузите компьютер.

Это работает на Win7, Win8 и Win10

Решение на основе реестра само по себе полностью отключает блокировку системы (даже через Start меню).

Вот метод, который фактически обеспечивает способ блокировки компьютера без win-L аккорд. Блокировка может быть выполнена с помощью ярлыка на панели задач или путем последовательного нажатия на них, а затем Enter,

Сначала создайте командный файл, который может включить блокировку системы и вызвать саму блокировку; инструкции для этого взяты из сообщения на форуме:

  • Создайте файлы reg-edit для включения или выключения блокировки системы. Это то же самое, что и в ответе Брента Фауста.

    • В DisableLockWorkstation.reg:

       Windows Registry Editor Version 5.00
       [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
       "DisableLockWorkstation"=dword:00000001
      
    • В EnableLockWorkstation.reg:

        Windows Registry Editor Version 5.00
      
      
        [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
        "DisableLockWorkstation"=-
      
  • Запустите скрипт reg-edit для отключения блокировки системы.

  • Создайте пакетный файл для переключения функции с помощью .reg файлы:

    regedit /S EnableLockWorkstation.reg
    rundll32.exe user32.dll,LockWorkStation
    regedit /S DisableLockWorkstation.reg
    

Теперь вы можете создать ярлык и закрепить его на панели задач:

  • Щелкните правой кнопкой мыши на командном файле и создайте ярлык.
  • Щелкните правой кнопкой мыши новый ярлык, измените свойства ярлыка и измените цель на cmd.exe /C "<path>\lock.bat", где <path> это полный путь к lock.bat файл.
  • Теперь ярлык должен быть прикреплен к панели задач (это не так до изменения цели вручную); его можно перетащить туда, как обычно.
    • (Обратите внимание, что вы также можете изменить значок на что-то вроде замка перед тем, как прикрепить ярлык к панели задач.)

Как упоминалось выше, после того, как вы выполнили вышеуказанную процедуру, вы сможете заблокировать компьютер, используя Win,L,Enter в последовательности (не как аккорд - хотя см. ниже для решения с использованием Ctl-Alt-L как аккорд). Это потому, что эта последовательность интерпретируется следующим образом: * Win - вызывает меню "Пуск", хотя вам не нужно ждать, пока оно загрузится * L - ищет пользовательский скрипт блокировки; на моей машине lock.bat ярлык всегда был первым L результат, если это был единственный ярлык на панели задач, начинающийся с L, (Проверьте это, прежде чем пытаться заблокировать компьютер таким образом!) * Enter - как только поиск найдет элемент, он будет запущен - т.е. будет вызван ярлык, и ваш компьютер заблокируется. Вам не нужно ждать загрузки поиска; Вы можете быстро нажать Win, L, Enter в последовательности и уйти. Экран не будет заблокирован сразу, но он должен заблокироваться в течение нескольких секунд.

Ниже приведено изображение ярлыка панели задач, который я сделал (используя этот значок):


РЕДАКТИРОВАТЬ: Использование аккорда, например, Ctl-Alt-L

В комментариях ниже пользователь lub094 предлагает способ назначить ярлык для аккорда Ctl-Alt-L (или любой другой ярлык, который вы хотите). Я не потратил время, чтобы проверить это, потому что я снова включил ярлык системы, но я предполагаю, что он работает.

  • Используйте встроенную функцию создания ярлыков, чтобы назначить аккорд:

  • Поместите ярлык в папку "Пуск":

    "C:\Users\ [user_name]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ [custom_folder]\"
    

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) не будет перехватывать события горячих клавиш.

Похоже, ты не можешь.

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

HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer NoWinKeys REG_DWORD 0x00000001 (1)

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

Но вы можете попробовать использовать Tweak UI. Под элементом дерева просмотра Explorer снимите флажок с "Горячие клавиши Windows+X". Hoekey также может работать, не пробовал. Источник

Метод @FrancoisB работает для Win8 и Win7. Для автоматизации решения:

  1. Создайте текстовый файл с суффиксом.reg (например, DisableWinL.reg)

  2. Вставьте следующий контент и сохраните файл:

    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableLockWorkstation"=dword:00000001

  3. Откройте этот файл с помощью RegEdit (двойной щелчок должен сработать), чтобы выполнить изменение.

Этот файл можно скопировать на новый компьютер, чтобы повторить процесс. И еще один с именем что-то вроде "EnableWinL.reg" может быть создан, чтобы повторно включить ключ Win+L: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableLockWorkstation"=dword:00000000

Use power toys for windows 10. There you have options to remap shortcuts..download power toys

Другие вопросы по тегам