有条件地或以编程方式切换 Windows 10 键盘启用/禁用状态

有条件地或以编程方式切换 Windows 10 键盘启用/禁用状态

因此,我在网上找到的有关在 Windows 10 中禁用笔记本电脑键盘的大部分信息是进入设备管理器并卸载内置键盘的驱动程序,这样它就只能使用外部键盘的输入。

我想知道的是:

  • 还有其他方法可以做到这一点吗?这似乎是一种黑客攻击/解决方法。

  • 我遇到的大多数信息都说要重新启用内置键盘,只需重新启动机器。有没有更快的方法来切换启用/禁用状态?

  • 我可以自动化/编写此过程的脚本吗?如果我可以编写一个程序,通过按下或单击按钮来切换内置键盘的状态,或者当它检测到某个 USB 设备插入时,那就太酷了。

编辑

以下是 devcon 对我的键盘硬件的评价:

HID\VID_320F&PID_500D&MI_00\7&FD25638&0&0000
    Name: HID Keyboard Device
    Hardware IDs:
        HID\VID_320F&PID_500D&REV_0100&MI_00
        HID\VID_320F&PID_500D&MI_00
        HID\VID_320F&UP:0001_U:0006
        HID_DEVICE_SYSTEM_KEYBOARD
        HID_DEVICE_UP:0001_U:0006
        HID_DEVICE

HID\VID_320F&PID_500D&MI_01&COL01\7&33A993FA&0&0000
    Name: HID Keyboard Device
    Hardware IDs:
        HID\VID_320F&PID_500D&REV_0100&MI_01&Col01
        HID\VID_320F&PID_500D&MI_01&Col01
        HID\VID_320F&UP:0001_U:0006
        HID_DEVICE_SYSTEM_KEYBOARD
        HID_DEVICE_UP:0001_U:0006
        HID_DEVICE

ACPI\MSNB1001\4&2B980D14&0
    Name: Standard PS/2 Keyboard
    Hardware IDs:
        ACPI\VEN_MSNB&DEV_1001
        ACPI\MSNB1001
        *MSNB1001
    Compatible IDs:
        *PNP0303

HID\VID_046D&PID_C52B&MI_00\7&DB720BD&0&0000
    Name: HID Keyboard Device
    Hardware IDs:
        HID\VID_046D&PID_C52B&REV_2411&MI_00
        HID\VID_046D&PID_C52B&MI_00
        HID\VID_046D&UP:0001_U:0006
        HID_DEVICE_SYSTEM_KEYBOARD
        HID_DEVICE_UP:0001_U:0006
        HID_DEVICE

如果我这样做:

C:\Windows\system32>devcon.exe disable HID_DEVICE_SYSTEM_KEYBOARD

我得到:

HID\VID_320F&PID_500D&MI_00\7&FD25638&0&0000                : Disable failed
HID\VID_320F&PID_500D&MI_01&COL01\7&33A993FA&0&0000         : Disable failed
HID\VID_046D&PID_C52B&MI_00\7&DB720BD&0&0000                : Disable failed
No matching devices found.

我也不知道为什么我的内置键盘出现了 3 次。第 4 个键盘是 USB 键盘,我不想禁用。

我确实以管理员身份运行 CMD,并且 devcon 状态和重启命令正常工作。

答案1

最简单的方法是禁用设备,例如“标准 PS/2 键盘*”,不要完全删除其驱动程序。编写此脚本的最简单方法是使用 Microsoft 的小型命令行实用程序,执行程序

  • 第一的,下载开发者大会来自微软。对于 Windows 10 版本 1803 及更高版本,

    • 下载CAB 文件(仅约 6 MB),
    • 在 Windows 资源管理器中打开 CAB 文件或7-Zip
    • 提取文件filbad6e2cce5ebc45a401e19c613d0a28f
    • 将该文件重命名为执行程序
    • 执行程序在 PATH 中的某个位置,例如,%SystemRoot%\system32或使用完整路径执行程序在批处理文件中。
    • [为了安全起见,您可以办理登机手续病毒总数
  • 查找键盘设备的ID:

    • Windows,输入命令,然后CtrlShiftEnter按以管理员身份打开 CMD 提示符。

    • 使用光盘移动到文件夹执行程序

    • 输入以下内容查找硬件 ID全部设备。

      devcon.exe 硬件信息 *

    • 使用 复制所有 CMD 文本CtrlA

    • 将文本粘贴到任何文本编辑器中,例如记事本并搜索键b

    • 该设备有多个 ID;请在列表中选择一个唯一的 ID,如下所示<device-name>

  • 现在您可以创建两个非常简短的脚本来禁用和启用键盘。

    • 创建一个文本文件;插入其中devcon.exe disable "<device-name>",包括引号。
    • 保存文件并将文本文件重命名为禁用键盘.bat
    • 创建一个文本文件;插入其中devcon.exe enable "<device-name>",包括引号。
    • 保存文件并将文本文件重命名为启用键盘.bat

现在,只需运行一个脚本(以管理员身份)即可禁用键盘,然后运行另一个脚本即可重新启用键盘。为了使操作更加简单,请创建这两个脚本的快捷方式,并在高级属性中设置为以管理员身份运行

不管你信不信,尽管描述很长,但你只需几分钟就可以完成。

注意:禁用键盘后,你需要某种方式来运行重新启用脚本*无需使用键盘

答案2

为什么您要引导我们完成这样的步骤,最终仅创建 C:\Windows\System32\myfolder\devcon.exe 启用“HID_DEVICE_SYSTEM_KEYBOARD”,并单独创建 C:\Windows\System32\myfolder\devcon.exe 禁用“HID_DEVICE_SYSTEM_KEYBOARD”?

不幸的是,enable-keyboard.bat 或 disable-keyboard.bat 的执行对触摸键盘是否弹出没有任何影响。

我想仅在我的语言设置为 en-US 时使用触摸键盘。当语言设置为 en-US 以外的语言时,我不希望触摸键盘弹出 - 因为我使用另一个更优化的键盘。启用或禁用弹出窗口也可以直接与更改语言相关联,或者,更改语言可以直接与启用/禁用触摸键盘的弹出功能相关联。

理想情况下,触摸键盘将始终保留为 en-US。有时我仍然不希望它弹出,这仍然需要一个快速解决方案。这是这里的大问题,因为仅更改语言就可以快速而舒适地使用 ctrl+shift。理想情况下,硬件键盘将始终保留为我的其他语言。

相关内容