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



我有一个带有简单屏幕键盘的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键代表其他语言。我想一种使用代码更改语言的方法,而不是使用Windows 10语言栏。

不幸的是,您无法更改此行为。InputInjector的目的是模拟实际键,它不会模拟"字符"。因此,当用户设置了英语键盘时,您模拟的键将与英文键盘匹配。

实际上,您甚至可以模拟 shift alt 键盘快捷键将用户的当前语言切换到其语言列表中的下一种:d。关键是,您正在模拟硬件本身,但不是如何解释它。

最新更新