当前位置: 首页 > news >正文

切换笔记本键盘的启用与禁用状态

使用批处理脚本切换笔记本键盘的启用与禁用状态

    • 背景描述
    • 详细步骤及代码解释
      • 1. 在管理员模式下运行脚本
      • 2. 脚本内容
      • 3. 解释

背景描述

在笔记本电脑中,在外接键盘的时候,有时我们希望禁用内置键盘,防止意外按键。Windows 系统中,键盘通常与 i8042prt 服务相关联。通过修改这个服务的启动类型,我们可以控制键盘的启用与禁用状态。可以编写一个批处理脚本来自动化这一操作。

详细步骤及代码解释

1. 在管理员模式下运行脚本

在 Windows 中,右键点击批处理文件,并选择“以管理员身份运行”来确保脚本具有必要的权限。

2. 脚本内容

以下是脚本的详细内容,以及每个步骤的解释:

@echo off
setlocal enabledelayedexpansion
:: 步骤1: 设置延迟变量扩展
:: 这允许我们在循环中修改变量并立即使用它们的最新值
:: 步骤2: 检查 i8042prt 服务的启动类型
for /f "tokens=4" %%A in ('sc qc i8042prt ^| findstr "START_TYPE"') do (set start_type=%%A
)
:: 步骤3: 根据服务的启动类型执行相应的操作
:: 这里是脚本的核心部分,根据服务状态启用或禁用键盘
:: 如果服务当前是禁用状态
if /i "%start_type%"=="DISABLED" (echo Service i8042prt is currently disabled. Enabling it...sc config i8042prt start=autoecho Service i8042prt has been enabled.
) 
:: 如果服务当前是手动启动状态
else if /i "%start_type%"=="DEMAND_START" (echo Service i8042prt is currently set to start on demand. Disabling it...sc config i8042prt start=disabledecho Service i8042prt has been disabled.
) 
:: 如果服务当前是自动启动状态
else if /i "%start_type%"=="AUTO_START" (echo Service i8042prt is currently set to start automatically. Disabling it...sc config i8042prt start=disabledecho Service i8042prt has been disabled.
) 
:: 如果服务启动类型未知
else (echo Unable to recognize the start type "%start_type%" for the service i8042prt.
)
:: 步骤4: 结束批处理脚本
:start
endlocal
pause

3. 解释

  • @echo off:关闭命令回显,使输出更清晰简洁。
  • setlocal enabledelayedexpansion:开启延迟变量扩展。
  • for /f "tokens=4" %%A in ('sc qc i8042prt ^| findstr "START_TYPE"') do (...):检索 i8042prt 服务的启动类型。
  • if /i "%start_type%"=="DISABLED" 等条件判断:根据服务当前状态启用或禁用键盘。
  • endlocal:清理脚本中使用的变量。
  • pause:暂停脚本,以便用户可以看到操作结果。
    通过以上步骤,您可以轻松地通过批处理脚本来切换笔记本键盘的启用与禁用状态。

相关文章:

  • Java基础(Arrays工具类)(asList()方法)(详细)
  • 鸿蒙开发(NEXT/API 12)【硬件(接入手写套件)】手写功能开发
  • 《深度学习》卷积神经网络 数据增强、保存最优模型 原理解析及实例实现
  • 【自动驾驶】对2D框的四条边同时缩进
  • 【07】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Swiper轮播组件与样式结构重用
  • Linux下C开发使用小技巧
  • TIM定时中断
  • 17 vue3之tsx手写vite tsx插件
  • 每天学习一个技术栈 ——【Django Channels】篇(1)
  • Kafka与RabbitMQ:深入理解两者之间的区别
  • MySQL基础--表的增删改查
  • 时间技能物品竞品抢拍拍卖发布h5公众号小程序开源版开发
  • 笔记整理—linux进程部分(2)使用fork创建进程
  • 尚品汇-自动化部署-Jenkins的安装与环境配置(五十六)
  • 十分钟实现内网连接,配置frp
  • 【刷算法】从上往下打印二叉树
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • iOS编译提示和导航提示
  • LeetCode算法系列_0891_子序列宽度之和
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PAT A1120
  • react 代码优化(一) ——事件处理
  • SpriteKit 技巧之添加背景图片
  • Web设计流程优化:网页效果图设计新思路
  • windows下mongoDB的环境配置
  • 缓存与缓冲
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 移动端解决方案学习记录
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 你对linux中grep命令知道多少?
  • hi-nginx-1.3.4编译安装
  • ​520就是要宠粉,你的心头书我买单
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • # 飞书APP集成平台-数字化落地
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #162 (Div. 2)
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #职场发展#其他
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (7)摄像机和云台
  • (8)STL算法之替换
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (论文阅读40-45)图像描述1
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)汇编语言——简单程序
  • (五)activiti-modeler 编辑器初步优化
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .Net 8.0 新的变化
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net 设置默认首页
  • .Net中ListT 泛型转成DataTable、DataSet
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题