Переназначить / переопределить горячую клавишу (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. Для автоматизации решения:
Создайте текстовый файл с суффиксом.reg (например, DisableWinL.reg)
Вставьте следующий контент и сохраните файл:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableLockWorkstation"=dword:00000001
Откройте этот файл с помощью 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