启用/禁用Windows密钥
本文关键字:密钥 Windows 禁用 启用 | 更新日期: 2023-09-27 18:12:20
我使用以下代码在键盘中启用/禁用windows键。
public static class WindowsKey {
public static void Disable() {
RegistryKey key = null;
try {
key = Registry.LocalMachine.OpenSubKey("System''CurrentControlSet''Control''Keyboard Layout", true);
byte[] binary = new byte[] {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x03,
0x00,
0x00,
0x00,
0x00,
0x00,
0x5B,
0xE0,
0x00,
0x00,
0x5C,
0xE0,
0x00,
0x00,
0x00,
0x00
};
key.SetValue("Scancode Map", binary, RegistryValueKind.Binary);
}
catch (System.Exception ex) {
Debug.Assert(false, ex.ToString());
}
finally {
key.Close();
}
}
public static void Enable() {
RegistryKey key = null;
try {
key = Registry.LocalMachine.OpenSubKey("System''CurrentControlSet''Control''Keyboard Layout", true);
key.DeleteValue("Scancode Map", true);
}
catch (System.Exception ex) {
Debug.Assert(false, ex.ToString());
}
finally {
key.Close();
}
}
}
但是如果我使用上面的代码,它会在系统重新启动后影响启用/禁用
我需要做这个按钮从c#点击。这意味着如果我从上面的代码中调用Disable函数,我需要立即禁用windows键(不影响重启后)。
如果我在上面的代码中调用启用功能,点击按钮,我需要启用Windows键。
我该怎么做??提前感谢!!
MSDN有一个页面:在游戏中禁用快捷键,这听起来像你需要的。
本质上是安装一个低级键盘钩子来吃掉不需要的键。你还需要处理WM_ACTIVATEAPP
消息来适当地启用/禁用钩子(否则当你不是活动应用程序时,你会吃掉键)。