启用/禁用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键。

我该怎么做??提前感谢!!

启用/禁用Windows密钥

MSDN有一个页面:在游戏中禁用快捷键,这听起来像你需要的。

本质上是安装一个低级键盘钩子来吃掉不需要的键。你还需要处理WM_ACTIVATEAPP消息来适当地启用/禁用钩子(否则当你不是活动应用程序时,你会吃掉键)。

下面是一个从c#中安装低级键盘钩子的例子