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

本文关键字:语言 系统 应用程序 检查 | 更新日期: 2023-09-27 18:00:02

我想测试各种语言的Qt应用程序。所以我更改了系统语言 b 将 MUI 语言注册表标记 ( HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/MUI/UILanguages( 分别修改为 fr-Fr 或 de-DE 用于法语和德语。然后我需要重新启动系统,以便 AUT(被测试的应用程序(开始显示新语言。还有其他方法可以在不重新启动系统的情况下执行此操作吗?我尝试杀死explorer.exe并再次启动它,但语言更改不会反映在我的应用程序上,除非我重新启动。我想避免重新启动。是否有需要停止/重新启动的服务?

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

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

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

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

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;
}