Win10/11如何在特定键盘连接时自动切换输入法?
Windows 10/11 特定外接键盘自动切换布局方案
前提准备
- 确保系统已添加美式英语和意大利语两种键盘布局
- 获取外接美式键盘的硬件ID:
- 按下
Win + X打开快速菜单,选择「设备管理器」 - 展开「键盘」分类,右键点击外接机械键盘,选择「属性」
- 切换到「详细信息」标签,下拉菜单选「硬件ID」,复制其中类似
HID\VID_XXXX&PID_XXXX的ID(后续步骤需用到)
- 按下
实现方法:PowerShell脚本 + 任务计划程序自动触发
步骤1:编写布局切换脚本
创建两个PowerShell脚本文件,分别对应两种布局切换:
切换为美式布局的脚本(SwitchToUS.ps1)
# 设置美式英语布局(默认ID:0409:00000409) Set-WinUserLanguageList -LanguageList @( (New-Object System.Management.Automation.PSObject -Property @{ LanguageTag = "en-US" Autonym = "English (United States)" EnglishName = "English (United States)" InputMethodTips = @("0409:00000409") Spellchecking = $true Handwriting = $false }) ) -Force
恢复意大利语布局的脚本(SwitchToIT.ps1)
# 设置意大利语布局(默认ID:0410:00000410) Set-WinUserLanguageList -LanguageList @( (New-Object System.Management.Automation.PSObject -Property @{ LanguageTag = "it-IT" Autonym = "Italiano" EnglishName = "Italian" InputMethodTips = @("0410:00000410") Spellchecking = $true Handwriting = $false }) ) -Force
提示:若布局ID与默认值不符,可在PowerShell中执行
Get-WinUserLanguageList查看当前布局的InputMethodTips值,替换脚本中对应内容即可。
步骤2:创建任务计划任务
任务1:外接键盘连接时切换美式布局
- 按下
Win + R,输入taskschd.msc打开任务计划程序 - 点击「创建任务」,填写基础信息:
- 名称:
切换到美式键盘布局 - 勾选「不管用户是否登录都要运行」
- 名称:
- 切换到「触发器」标签,点击「新建」:
- 「开始任务」选择「当特定事件被记录时」
- 日志选「系统」,来源选「Microsoft-Windows-PnPManager」
- 事件ID填写「20001」(设备连接事件)
- 点击「条件」→「筛选器」→「新建条件」,选择「事件数据」,在「包含」中填入之前复制的硬件ID,确认后保存
- 切换到「操作」标签,点击「新建」:
- 操作选「启动程序」
- 程序或脚本填
powershell.exe - 添加参数填
-ExecutionPolicy Bypass -File "C:\你的脚本路径\SwitchToUS.ps1"(替换为实际脚本存放路径)
- 切换到「设置」标签,勾选「允许任务按需运行」,点击确定完成创建
任务2:外接键盘断开时恢复意大利语布局
- 点击「创建任务」,名称填
恢复意大利语键盘布局 - 触发器设置:
- 「开始任务」选择「当特定事件被记录时」
- 日志选「系统」,来源选「Microsoft-Windows-PnPManager」
- 事件ID填写「20002」(设备断开事件)
- 事件数据筛选同样填入外接键盘的硬件ID
- 操作设置:
- 启动程序填
powershell.exe - 参数填
-ExecutionPolicy Bypass -File "C:\你的脚本路径\SwitchToIT.ps1"
- 启动程序填
- 完成任务创建
验证效果
插拔外接美式键盘,系统会自动切换对应布局。若脚本执行异常,可查看任务计划程序的「历史记录」标签排查问题。
内容的提问来源于stack exchange,提问作者Simo S
相关产品推荐
相关产品推荐

