UWP C# - 设置InputInjector键盘的语言

时间:2018-03-26 07:56:02

标签: c# uwp windows-10

我有一个使用按钮的简单屏幕键盘的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语言栏。

1 个答案:

答案 0 :(得分:2)

很遗憾,您无法更改此行为。 InputInjector的目的是模拟实际的按键操作,它不会模拟&#34;字符&#34;。因此,当用户设置了英文键盘时,按下您模拟的按键将匹配英文键盘。

实际上,您甚至可以模拟 Shift + Alt 键盘快捷键,将用户的当前语言切换到她的语言列表中的下一个语言:-D。关键是,您正在模拟硬件本身,而不是如何解释它。