Проверьте изменения языка системы в приложении

Я хочу протестировать приложение Qt для разных языков. Поэтому я меняю язык системы b, изменяя тег реестра MUI Language (HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/MUI/UILanguages) в fr-Fr или de-DE для французского и немецкого соответственно. Затем мне нужно перезапустить систему для AUT (тестируемого приложения), чтобы начать отображать новый язык. Есть ли другой способ сделать это без перезагрузки системы? Я пытался убить explorer.exe и запустить его снова, но изменения языка не отразятся на моем приложении, пока я не перезапущу. Я хочу избежать перезапуска. Есть ли служба, которую мне нужно остановить / перезапустить?

Кроме того, есть ли другой возможный способ изменить язык системы и отразить это в моем приложении (без изменения реестра)?

1 ответ

Нет, я думаю, что это невозможно без перезагрузки или выхода из системы, потому что при запуске системы после проверки не будет проверено множество ключей реестра.

Попробуйте это может помочь вам

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;
}
Другие вопросы по тегам