25

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

用例 - 我想在笔记本电脑显示器锁定后立即关闭它。我知道可以锁定和关闭显示器的可执行文件,但我不想更改系统锁定的方式(通过显式运行程序或通过其他快捷方式)。如果Win+L可以分配给这个可执行文件,那将是最好的。

4

6 回答 6

25

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

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

并重新启动计算机。

这适用于 Win7、Win8 和 Win10

于 2012-06-11T21:43:59.353 回答
12

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

于 2008-11-25T14:35:53.950 回答
12

基于注册表的解决方案本身完全禁用锁定系统(即使通过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,锁定计算机(不是作为和弦 - 尽管请参阅下面使用 - 作为和弦的解决方案)。这是因为该序列解释如下:EnterCtrlAltL

  • Win-- 调出开始菜单,虽然您实际上不需要等待它加载
  • L-- 搜索自定义锁定脚本;在我的机器上,如果lock.bat快捷方式L是我的任务栏上唯一以. (在尝试以这种方式锁定您的计算机之前验证这一点!)L
  • Enter-- 一旦搜索找到一个项目,它就会被启动 -- 即快捷方式将被调用,您的计算机将被锁定。您无需等待搜索加载;您可以按顺序快速按WinLEnter并走开。屏幕不会立即锁定,但应该会在几秒钟内锁定。

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

lock.bat 任务栏快捷方式


编辑:使用和弦,例如Ctrl- Alt-L

在下面的评论中,用户 lub094 建议了一种将快捷方式分配给和弦 Ctrl- Alt- L(或您想要的任何快捷方式)的方法。我没有花时间对此进行测试,因为我已经重新启用了系统快捷方式,但我认为它可以工作。

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

    在此处输入图像描述

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

    "C:\Users\ [user_name]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ [custom_folder]\"
    
于 2015-01-16T00:05:13.690 回答
3

看起来你不能。

您可以通过对注册表进行以下更改来禁用除 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也可能有效,没有尝试过。来源

于 2008-11-19T05:18:42.890 回答
3

@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
    
于 2013-02-11T02:23:04.193 回答
0

使用适用于 Windows 10 的电动玩具。您可以选择重新映射快捷方式.. 下载电动玩具

于 2020-06-18T13:42:55.737 回答