【pwsh】按键自动切换中文输入法

1. 目标

本文旨在简单解决每次 powershell 打开时输入法处于中文状态的问题。鉴于输入法API不同,比较方便的切换方法是在启动powershell时自动按下切换中英文的按键,默认为Shift

2. 原理及代码

  1. 借助 profile 配置文件,在powershell启动时自动运行某些命令1
 # 借助记事本快速在用户文件夹下的文档中建立profile
NotePad.exe $((Split-Path $profile -Parent) + '\profile.ps1')
  1. 通过 [System.Windows.Forms] net组件的 Sendkey 功能,发送指定按键2
Add-Type -AssemblyName System.Windows.Forms # 载入 dll 库
[System.Windows.Forms.SendKeys]::SendWait('+') # + 代表 {Shift} 键
# [System.Windows.Forms.SendKeys]::SendWait('+(EC)') # 组合键
  1. 最后将Sendkey的代码复制到 profile 中。

3. 附录

3.1 参考

3.2 SendWait()

  1. 若要指定在按下其他几个键时按住SHIFTCTRLALT的任意组合,请将这些键的代码括在括号中。例如,要指定在按下E和C时按住SHIFT,请使用+(EC)
    **要指定在按下E时按住SHIFT,然后按C而不按SHIFT,请使用+ EC
  2. 要指定重复键,请使用表格{键号}。 您必须在键和数字之间加一个空格。例如,{LEFT 42}表示按下左箭头键42次; {h 10}表示按H 10次。
按键代码
BACKSPACE{BACKSPACE}, {BS}, or {BKSP}
BREAK{BREAK}
CAPS LOCK{CAPSLOCK}
DEL or DELETE{DELETE} or {DEL}
DOWN ARROW{DOWN}
END{END}
ENTER{ENTER} or ~
ESC{ESC}
HELP{HELP}
HOME{HOME}
INS or INSERT{INSERT} or {INS}
LEFT ARROW{LEFT}
NUM LOCK{NUMLOCK}
PAGE DOWN{PGDN}
PAGE UP{PGUP}
PRINT SCREEN{PRTSC} (reserved for future use)
RIGHT ARROW{RIGHT}
SCROLL LOCK{SCROLLLOCK}
TAB{TAB}
UP ARROW{UP}
F1{F1}
F2{F2}
F3{F3}
F4{F4}
F5{F5}
F6{F6}
F7{F7}
F8{F8}
F9{F9}
F10{F10}
F11{F11}
F12{F12}
F13{F13}
F14{F14}
F15{F15}
F16{F16}
Keypad add{ADD}
Keypad subtract{SUBTRACT}
Keypad multiply{MULTIPLY}
Keypad divide{DIVIDE}
SHIFT+
CTRL^
ALT%

  1. Mooser Lee, Powershell自动执行脚本之profile ↩︎

  2. .NET Framework 4.8 有关SendKeys Class 的说明文档 ↩︎

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值