C# - изменение настроек реестра не работает

Я пытался изменить языковые настройки ОС. И действительно, когда я захожу в Панель управления, я вижу свои изменения.

Тем не менее, это ничего не меняет. Только когда я захожу вручную и меняю его в панели управления, он меняет его.

Эти настройки будут влиять на заголовок "Accept-Language" в HTTP-запросах. Я хочу, чтобы программно все сайты относились ко мне как к американцу. Итак, я попытался изменить его вручную: Панель управления -> Язык часов и регион -> Язык, а затем я поставил "английский" поверх него. Это меняет его, но когда я делаю это программно, как описано, оно не уведомляет Windows.

        RegistryKey key = Registry.CurrentUser.OpenSubKey(@"ControlPanel\International\User Profile", true);
        string[] lang = { "fr", "en-US" };
        key.SetValue("Languages", lang, RegistryValueKind.MultiString);

Ценю твою помощь.

1 ответ

После применения настроек пользователь должен выйти и войти, чтобы применить изменения.

Это мой код, меняющий язык ОС:

var registryKey = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true);
var language = {"en-US"};
registryKey .SetValue("PreferredUILanguagesPending", language, RegistryValueKind.MultiString);

Надеюсь это поможет!

Другие вопросы по тегам