|
|
近来也在认真的学习封装系统,主要是了解一下过程,考虑到输入法也是要能选择的,我本人五笔输入的,拼音少用,但有时并不是自己用,别人要用拼音时,老是登陆不是自己要的默认输入法也是一件糟糕的事,当然手动也能设置,不多赘述。为体现能自动拉风的操作,马上结合我的小千问,五分钟搞定。一次成型,三次成功,人品大爆发了,用的日常提问。本脚本针对系统有微软五笔和拼音输入法的前提下成立。旨在研究学习封装系统输入法多适应人群需要。
脚本符件打包:
微软输入法默认切换.7z
(1.54 KB, 下载次数: 46)
原码:
- @echo off
- chcp 65001 >nul
- setlocal enabledelayedexpansion
- :: ==========================================
- :: 核心配置区 (动态获取真实输入法ID)
- :: ==========================================
- set "PINYIN_ID="
- set "WUBI_ID="
- for /f "delims=" %%i in ('powershell -NoProfile -Command "$list = Get-WinUserLanguageList; foreach($t in $list.InputMethodTips){Write-Output $t}"') do (
- set "line=%%i"
- echo !line! | findstr /i "FA550B04" >nul && set "PINYIN_ID=!line!"
- echo !line! | findstr /i "82590C13" >nul && set "WUBI_ID=!line!"
- echo !line! | findstr /i "A5B02937" >nul && set "WUBI_ID=!line!"
- )
- :: 如果动态获取失败,使用你确认过的真实ID作为兜底
- ::if "!PINYIN_ID!"=="" set "PINYIN_ID=0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411F-A5AC-CA038EC515D7}"
- ::if "!WUBI_ID!"=="" set "WUBI_ID=0804:{6A498709-E00B-4C45-A018-8F9E4081AE40}{82590C13-F4DD-44F4-BA1D-8667246FDF8E}"
- :: ==========================================
- :: 第一步:获取当前注册表状态,并决定要写入的新值
- :: ==========================================
- set "TARGET_ID="
- for /f "tokens=2,*" %%a in ('reg query "HKCU\Control Panel\International\User Profile" /v "InputMethodOverride" 2^>nul ^| findstr "InputMethodOverride"') do set "CURRENT_OVERRIDE=%%b"
- if "!CURRENT_OVERRIDE!"=="!PINYIN_ID!" (
- echo 检测到当前为:微软拼音,准备切换至:微软五笔...
- set "TARGET_ID=!WUBI_ID!"
- ) else (
- echo 检测到当前为:微软五笔,准备切换至:微软拼音...
- set "TARGET_ID=!PINYIN_ID!"
- )
- :: ==========================================
- :: 第二步:调用 PowerShell 进行底层注册表更新并发送刷新信号
- :: ==========================================
- :: 这一步是核心,它不仅写入注册表,还会通过系统API强制刷新TSF框架,确保任务栏同步更新
- powershell -NoProfile -Command "$regPath = 'HKCU:\Control Panel\International\User Profile'; New-ItemProperty -Path $regPath -Name 'InputMethodOverride' -Value '!TARGET_ID!' -PropertyType String -Force; try { Set-WinDefaultInputMethodOverride -InputTip '!TARGET_ID!'; } catch {}; Write-Host '[成功] 输入法已切换并刷新。'"
- shutdown /l
复制代码 简单动图演示,(话说论坛要是支持MP4动图的话将节省很多空间)
|
|