2016-02-25 2 views
0

Я попытался изменить языковые настройки ОС. И действительно, когда я иду на Панель управления, я вижу свои изменения.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

Все, что вы сделали, это изменение данных настроек, вам необходимо уведомить Windows о том, что настройки были изменены. – Lloyd

+0

Спасибо, но как? –

ответ

0

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

Это мой код смены языка ОС:

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

Надежда это помогает!

+0

Во-первых, спасибо. Вы не поняли мою точку зрения. Я просто хочу, чтобы английский был поверх моих языков макета. Итак, когда я перехожу на www.example.com, например, он поймет, что я американец. –

+0

Я вижу. Просто посмотрел в реестр. Вы пытались удалить «fr». Поэтому просто используйте: 'var language = {" en-US "}'. Дайте мне знать, если это сработает! –

+0

Nope. и вы можете изменить его порядок –

Смежные вопросы