我有一个使用按钮的简单屏幕键盘的UWP应用程序,当按下按钮时它使用InputInjector类发送键,我已经发送了一个键发送功能:
public void SendKey(ushort keyCode)
{
InjectedInputKeyboardInfo inputInfo = new InjectedInputKeyboardInfo();
InjectedInputKeyboardInfo myinput = new InjectedInputKeyboardInfo();
myinput.VirtualKey = keyCode;
var injector = InputInjector.TryCreate();
injector.InjectKeyboardInput(new List<InjectedInputKeyboardInfo> { myinput });
}
我如何指定哪种语言?目前它采用系统语言,但应用程序全屏运行,用户无法更改系统语言。
例如:如果系统语言是英语,SendKey((ushort)'E')
将发送E,如果它不是英语,则发送E,而不是E键代表另一种语言。我想要一种使用代码更改语言的方法,而不是使用Windows 10语言栏。
答案 0 :(得分:2)
很遗憾,您无法更改此行为。 InputInjector
的目的是模拟实际的按键操作,它不会模拟&#34;字符&#34;。因此,当用户设置了英文键盘时,按下您模拟的按键将匹配英文键盘。
实际上,您甚至可以模拟 Shift + Alt 键盘快捷键,将用户的当前语言切换到她的语言列表中的下一个语言:-D。关键是,您正在模拟硬件本身,而不是如何解释它。