重新分配/覆盖热键(Win + L)locking窗口

是否可以重新分配Win + L热键到另一个可执行文件/快捷方式?

用例 – 我想一旦locking,就closures笔记本电脑的显示器。 我知道一个可以locking和closures显示器的可执行文件,但我不想改变系统被locking的方式(通过明确运行程序或通过其他快捷方式)。 如果Win + L可以分配给这个可执行文件,那将是最好的。

您需要设置以下注册表项以完全禁用Windows锁定功能:

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

并重新启动电脑。

这适用于Win7,Win8和Win10

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)不会捕获热键事件。

基于注册表的解决方案完全禁用锁定系统(即使通过“ Start菜单)。

这是一种方法,实际上提供了一种方法来锁定电脑没有win-L和弦。 锁定可以通过任务栏上的快捷方式完成,也可以按顺序按Enter

首先,创建一个可以切换系统锁定并触发锁定的批处理文件; 这样做的说明取自一个论坛帖子 :

  • 创建用于打开或关闭系统锁定的注册编辑文件。 这和布伦特·福斯特的答案是一样的。

    • 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文件的完整路径。
  • 该快捷方式现在应该是可以pinnable到任务栏(这是正确的手动更改目标之前); 它可以像往常一样拖到那里。
    • (请注意, 将快捷方式固定到任务栏之前 ,您可能还需要将图标更改为类似挂锁的图标。)

如上所述,一旦你完成了上述过程,你应该能够使用WinLEnter顺序锁定电脑( 不是和弦 – 尽管如下使用CtlAltL作为一个解决方案弦)。 这是因为该序列解释如下:* Win – 调出开始菜单,但实际上并不需要等待加载* L – 搜索自定义锁脚本; 在我的机器上, lock.bat快捷键始终是第一个L结果, 如果它是我的任务栏上以L开头的唯一快捷方式。 (在尝试以这种方式锁定您的计算机之前验证此操作 !)* Enter – 一旦搜索发现一个项目,它将被启动 – 即快捷方式将被调用,并且您的计算机将被锁定。 您不需要等待搜索加载; 您可以快速按WinLEnter按顺序走开。 屏幕不会立即锁定,但应在几秒钟内锁定。

下面是我制作的任务栏快捷图片(使用这个图标 ):

在这里输入图像说明


编辑:使用和弦,如CtlAltL

在下面的评论中,用户lub094建议一种方法来分配快捷键到和弦 CtlAltL (或任何你想要的快捷键)。 我没有花时间来测试这个,因为我已经重新启用了系统快捷键,但我认为它的工作原理。

  • 使用内置的快捷键创建功能分配和弦:

在这里输入图像说明

  • 将快捷方式本身放在“开始”菜单文件夹中:

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

看起来你不能。

您可以通过对注册表进行以下更改来禁用除Win + L和Win + U 以外的所有内置Windows热键(这可能适用于所有操作系统,但可能需要重新启动):

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

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

但是你可以尝试使用Tweak UI。 在资源管理器树视图项下,取消选中“启用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