你好,微软自带的输入法会记住输入法状态,如上次搜索框的输入法是中文,下次唤醒搜索框也是中文。
希望可以做到每次唤醒搜索框,输入法可以自动切换成英文。据我所知,C#中可以控制Input Method Manager (IMM) 切换成英文,代码如下:
//设置系统默认输入法为当前输入法
InputLanguage.CurrentInputLanguage = InputLanguage.DefaultInputLanguage;
//获得窗口句柄和输入法句柄
hWnd = this.Handle;
hInd = ImmGetContext(hWnd);
//切换输入法状态为英文
if (hInd != IntPtr.Zero)
{
ImmSetOpenStatus(hInd, false)
ImmReleaseContext(hWnd, hImc)
}
[DllImport(“imm32.dll”)]
public static extern IntPtr ImmGetContext(IntPtr hWnd);
[DllImport(“Imm32.dll”)]
public static extern bool ImmReleaseContext(IntPtr hWnd, IntPtr hImc);
[DllImport(“imm32.dll”)]
public static extern bool ImmSetOpenStatus(IntPtr hImc, bool b);