c# - 是否可以将 Windows 语言栏设置为英语或从 c# 应用程序恢复为默认设置

标签 c#

我有一个 C# 应用程序需要将 Windows 语言栏设置为英语或至少恢复为默认设置。我知道我可以设置我自己的应用程序的 InputLanguage,但我通常需要设置 Windows 的输入语言。这可以使用语言栏手动完成,但我需要一种以编程方式完成的方法。有办法做到这一点吗?

最佳答案

我最终这样做了:

Process[] apps=Process.GetProcesses();
foreach (Process p in apps)
{
    if (p.MainWindowHandle.ToInt32()>0)
    {
        NativeWin32.SetForegroundWindow(p.MainWindowHandle.ToInt32());

        //send control shift 2 to switch the language bar back to english.
        System.Windows.Forms.SendKeys.SendWait("^+(2)");

        p.Dispose();
    }
}

关于c# - 是否可以将 Windows 语言栏设置为英语或从 c# 应用程序恢复为默认设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065435/

相关文章:

c# - ContinueWith 和 TaskCancellation - 如果任务失败,如何返回默认值?

c# - 检测文件是否被另一个进程(或实际上是同一个进程)锁定

c# - 是否可以为 XAML 绑定(bind)到 View 模型启用智能感知?

c# - 从 PropertyGrid 显示详细的文件夹浏览器

c# - static RNGCryptoServiceProvider -- 生成 session 和随 secret 码是否安全且线程安全?

c# - 从同一应用程序中的另一个 Web API 调用 Web Api

c# - 如何检查一个字符串是否只包含#

c# - GroupBy 和 MoreLinq 的 DistinctBy 之间的性能差异

c# - DVR 设备缺少 DirectShow GUID

c# - 基于 JsonSerializerSettings 确定 JSON.Net 属性映射