在做自动化测试时,有时会忘记把测试机器的输入法调成英文状态,这就导致Sendkey()
输入时是中文,导致测试失败,所以我们需要在运行测试前确保输入法是英文状态,最保险的做法是Win+Space
键直接切换到 ENG英语输入法
,那么该如何自动实现呢?
一、参考研究
查了大部分资料,主流的提供这两种方法更改输入法
InputLanguage
接口,设置InputLanguage.CurrentInputLangaue
属性,位于System.Window.Form.dll
中,使用时需要引用该dllWin32 API
,模拟键盘快捷键,Win+Space
键切换输入法
我的测试程序希望更改计算机系统全局输入法,而第一种方案不能更改系统输入法只能更改自己程序输入时的状态,其他程序的输入法状态不能改变。所以只能选择第二种方案
二、模拟快捷键
Win32 API
关于键盘操作需要用到以下关键函数
//第一个参数:虚拟键码
//第二个参数:硬件扫描码,一般设置为0即可;
//第三个参数:函数操作的一个标志位,按键压着或者释放<