检查应用程序上的系统语言更改

时间:2014-04-24 07:31:14

标签: c# qt registry mui

我想测试各种语言的Qt应用程序。所以我改变了系统语言b分别修改了MUI语言注册表标签(HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/MUI/UILanguages)到fr-Fr或de-DE的法语和德语。然后我需要为AUT(测试中的应用程序)重新启动系统以开始显示新语言。有没有其他方法可以做到这一点,而无需重新启动系统?我已尝试杀死explorer.exe并再次启动它,但语言更改并未反映我的应用程序,除非我重新启动。我想避免重启。我需要停止/重启服务吗?

另外,有没有其他可能的方法让我更改系统语言并反映在我的应用程序中(不更改注册表)?

1 个答案:

答案 0 :(得分:0)

不,我认为没有重启或注销系统是不可能的,因为系统会在启动后检查语言,因为它不会检查许多注册表项。

试试这可能会对你有所帮助

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Thread.CurrentThread.CurrentUICulture=Thread.CurrentThread.CurrentCulture;

如果您只想更改输入语言而不是系统,请尝试

private void ChangeKeboardLayout(System.Globalization.CultureInfo CultureInfo)
{
    InputLanguage c = InputLanguage.FromCulture(CultureInfo);
    InputLanguage.CurrentInputLanguage = c;
}