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);
}
基于注册表的解决方案本身完全禁止锁定系统(甚至通过Start菜单)。 这里有一个方法,它实际上提供了一种不用Win-L和弦就可以锁定计算机的方法。锁定可以通过任务栏上的快捷方式来完成,也可以通过依次按下它们然后按Enter键来完成。 首先,创建一个批处理文件,它可以切换系统锁定并触发锁本身;执行此操作的说明摘自a forum post:
创建注册表编辑文件来打开或关闭系统锁定。这与布伦特的答案相同。
在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"=-
6条答案
按热度按时间bd1hkmkf1#
您需要设置以下注册表项以完全禁用Windows锁定功能:
并重新启动计算机。
这适用于Win7、Win8和Win10
3xiyfsfu2#
Win+L是一个系统分配的热键,没有禁用它的选项。这意味着应用程序没有办法检测到它,除非你使用一个低级的全局键盘钩子(
WH_KEYBOARD_LL
)。这在XP SP3中有效;我还没有在Vista中测试过:注意你需要一个 * 低级 * 键盘钩子。一个 * 普通 * 键盘钩子(
WH_KEYBOARD
)不能捕获热键事件。gmxoilav3#
基于注册表的解决方案本身完全禁止锁定系统(甚至通过
Start
菜单)。这里有一个方法,它实际上提供了一种不用Win-L和弦就可以锁定计算机的方法。锁定可以通过任务栏上的快捷方式来完成,也可以通过依次按下它们然后按Enter键来完成。
首先,创建一个批处理文件,它可以切换系统锁定并触发锁本身;执行此操作的说明摘自a forum post:
DisableLockWorkstation.reg
中:EnableLockWorkstation.reg
中:*运行reg-edit脚本以禁用系统锁定。
.reg
文件创建批处理文件以切换特征:现在,您可以create a shortcut and pin it to the taskbar:
cmd.exe /C "<path>\lock.bat"
,其中<path>
是lock.bat
文件的完整路径。如上所述,一旦你完成了上述过程,你应该能够锁定计算机使用Win,L,Enter的顺序(不是作为一个和弦-虽然看下面的解决方案使用Ctrl-Alt-L作为一个和弦)。这是因为该序列解释如下:
lock.bat
快捷方式始终是第一个L结果如果它是我的任务栏上以L开头的唯一快捷方式。(在尝试以这种方式锁定计算机之前,请验证!)下面是我创建的任务栏快捷方式的图片(使用this icon):
EDIT:使用和弦,如Ctrl-Alt-L
在下面的评论中,用户lub 094建议将快捷键指定为 chordCtrl-Alt-L(或任何您喜欢的快捷键)。我没有花时间测试这个方法,因为我已经重新启用了系统快捷键,但我认为它可以工作。
huus2vyu4#
看起来你不能。
您可以通过对注册表进行以下更改来禁用除Win + L和Win + U之外的所有内置Windows热键(这应该适用于所有操作系统,但可能需要重新启动):
注册表项当前用户\软件\Microsoft\Windows\当前版本\策略\资源管理器NoWinKeys注册表项数据0x0000001(1)
(http://www.autohotkey.com/docs/misc/Override.htm)
但是你可以尝试使用Tweak UI。在资源管理器树视图项下,取消选中"Enabled Windows + X"热键。Hoekey也可能工作,还没有尝试过。Source。
k3fezbri5#
@FrancoisB方法适用于Win8和Win7。要自动执行解决方案:
1.创建后缀为.reg的文本文件(例如DisableWinL.reg)
1.粘贴以下内容并保存文件:
1.使用RegEdit打开该文件(双击应该可以)以执行更改。
这个文件可以复制到一台新的机器上重复这个过程,并且可以创建另一个名为“EnableWinL.reg”的文件来重新启用Win+L键:
4ktjp1zp6#
使用windows 10的电动玩具。在那里你可以选择重新Map快捷方式。