1 / 1 / 0
Регистрация: 11.01.2016
Сообщений: 27
|
|
1 | |
Как узнать язык системы?29.05.2016, 22:44. Показов 12706. Ответов 53
Метки нет (Все метки)
Задача: Нужно получить код языка системы и потом использовать его для удаления ненужных файлов из папки. Кто знает и может - помогите!
0
|
29.05.2016, 22:44 | |
Ответы с готовыми решениями:
53
Сервер, частная сеть; как узнать общую картину системы Как узнать язык системы? Как узнать язык установленной Windows? Как узнать язык на котором написан софт? |
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
||||||
09.09.2018, 06:38 | 21 | |||||
Что-то не понимаю, решил проверить работу кода, а выходит непонятно что. Вот пример "Что душе угодно":
Почему равенство не выполняется?
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|||||||||||||||||||||
09.09.2018, 13:41 | 22 | ||||||||||||||||||||
ErikPshat,
что-то вы все перепутали вот выставленная кодовая страница:
Для пущей уверенности посмотреть язык системы можно так:
и для понимания процесса:
0
|
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,127
|
||||||
09.09.2018, 15:56 | 23 | |||||
Как вариант:
0
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
||||||
09.09.2018, 20:41 | 24 | |||||
Эмм, но в том вашем сообщении нету ничего из того, что вы сейчас дописали в примерах. Вчера в том вашем сообщении было в заголовке написано жирным Решение и под кодом было написано, как универсальное решение. Вот я и решил воспользоваться этим универсальным и довольно простым решением, но оно в таком виде не работает.
Поэтому, я воспользовался примером из 2-го поста темы и меня это вполне устраивает:
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|
09.09.2018, 22:58 | 25 |
ErikPshat,
кажись я начал понимать что вы хотите сказать. так вот кусок кода который отражен в п10 является частью кода из п6 и не может быть самостоятельной, рабочей единицей. Это было пояснение, пример для кого-то, а вы по ошибке (не вчитываясь в детали и тему в целом) приняли его за самостоятельный код. Конечно отдельно он работать как надо не будет.
1
|
10.09.2018, 08:04 | 26 |
Здравствуйте, ErikPshat!
Если бы я устанавливал себе программу, то я бы предпочёл, чтобы она выбрала для меня язык, который я указал как "Язык интерфейса" (отображаемый в диалоговых окнах). А для этого, значение нужно брать из параметра: Или параметр будет отсутствовать вообще, если в систему не устанавливали других языков. P.S. Респект эксперту PSP.
1
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|||||||||||
11.09.2018, 03:07 | 27 | ||||||||||
Странно, у меня такого параметра в реестра нет. Есть такое:
Добавлено через 35 минут В таком случае, если это имеется на всех компьютерах, в чём я сомневаюсь,, тогда код будет такой:
International из параметра LocaleName , там тоже значение ru-RU :
0
|
11.09.2018, 07:57 | 28 | |||||
Это какое-то закешированное значение, оно не будет соответствовать актуальному языку диалоговых окон после переключения. Я просматривал трассировщиком, что именно меняется при смене языка. Этого там не было.
Я предлагаю, проверять параметр: HKCU\Control Panel\Desktop => PreferredUILanguages. Если его нет, то брать значение из языка установки ОС.
Нет. Это скорее всего тоже самое, что язык установки системы. И любопытно, зачем вы читаете параметры из раздела Local System (HKU\.default)? У вас предполагается установка программ до входа пользователя в систему?
1
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|
11.09.2018, 09:58 | 29 |
Да как бы, мне кажется вроде бы без разницы, что HKU с разделом .default, что HKCU без него. Там вроде бы ветки реестра почти дублируются. Ну и конечно же не до входа в систему ))) я что-то не в курсе как это работает, просто, если у юзера русская локаль, тогда запускаю русскую версию программы и консоли, в противном случае английскую.
0
|
11.09.2018, 18:47 | 30 | |||||
HKU\S-1-5-18 -> это симлинк к разделу HKU\.default, который является конфигурационным разделом для учётки Local System.
Можете убедится через ListRegistryLinks от Helge Klein:
т.е. он никак не отображает ни настройки текущего пользователя, ни дефолтовые. Дефолтовые берутся с помощью динамического монтирования отдельного файла улья. Сегодня довольно распространённая практика.
2
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
||||||
12.09.2018, 01:32 | 31 | |||||
Dragokas, то есть, я так понял, что .Default User будет работать только если я сижу под дефолтной учёткой.
А если юзер создаёт новую учётную запись, то все эти дефолтные настройки уже к нему не имеют отношения? Значит нужно всё-таки брать информацию из HKCU. Вообщем ваш последний вариант выходит самый верный. Думаю 2 параметра одновременно должны у всех существовать - это: "HKCU\Control Panel\International" /v "Locale" и "HKCU\Control Panel\International" /v "LocaleName" Первый в 16-ричной системе как 00000419 , а второй дублирующий в текстовой ru-RU А вот первый у вас параметр PreferredUILanguages у меня в реестре отсутствует и на него выползает ошибка.Вот что выдаёт консоль на весь ваш код: Код
Ошибка: Не удается найти указанный раздел или параметр в реестре. Russian language Для продолжения нажмите любую клавишу . . . PreferredUILanguages у юзера может не быть, значит его следует исключить из использования, имхо Тогда думаю дя всех машин будет достоверным такой код:
0
|
12.09.2018, 02:40 | 32 | |||||
Нету такого понятия как "дефолтовая учётка", точнее вы не можете под ней "сидеть".
Кроме того, эта так называемая "дефолтовая учётка" (c:\users\default) не имеет никакого отношения к разделу HKU\.Default Это всё описано в статье по ссылке выше. Также: http://www.oszone.net/635/ http://www.oszone.net/637/ Когда создаётся новый пользователь, то изначальные файлы для него берутся из C:\Users\Default и новый куст HKCU будет содержать записи из файла-улья C:\users\default\ntuser.dat, но в текущий момент в реестре этот куст нигде не подмонтирован и прочитать вы его можете только, если вручную подмонтируете этот файл через reg load .HKU\.default - это совершенно другие настройки и связаны они с учёткой системы (Local System). И вы снова пытаетесь подставить параметры, которые не меняются при переключении языка для диалогов. Мой выложенный код это учитывает, и если параметр не существует, то читается следующий параметр. Если вам не нравится сообщение "Не удается найти указанный раздел или параметр в реестре.", вы можете его занулить через 2>NUL:
0
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|
12.09.2018, 15:01 | 33 |
Dragokas, ну так всё равно получается, что этот профиль .Default User создаётся при установке Windows, а, при создании новых учётных записей, профиль пользователя копируется из дефолтной записи. Для нас же важно, чтобы условия для батника попадали бы в точку, т.е., чтобы присутствовали на машине любого пользователя, будь то Windows 7/8/8.1/10.
То есть, нам важно, чтобы комп юзера понимал русский язык диалогов в батнике cp866 и в русскоязычной программе, чтобы юзер не видел крякозабликов. Мы проверяем, действительно ли Windows изначально понимает русскую локаль, в проттивном случае, запускаем англоязычную программу и сообщения в батнике. Да, согласен, я могу занулить вывод ошибки серез >NUL . Только до меня никак не доходит, зачем проверять изменяемые параметры переключения языка диалогов, тем более, что у меня PreferredUILanguages почему-то отсутствует, а значит и у других его может не быть, вернее он наверное сидит в другой ветке реестра. Мне как бы не важно, какой язык выставлен при переключении языка для диалогов, какой язык клавиатуры. Передо мной стоит задача выявить локаль системы и определить, понимает ли она русский язык. А если у юзера другая локаль, пусть поругальская, испанская или английская, тогда запускается английская программа, тогда вроде бы определение "Locale" или "LocaleName" вполне достаточно. И вроде даже не важно, как это определять, то ли через Default User, то ли через локального юзера.Ну ладно, нафлудили что-то мы
0
|
12.09.2018, 19:09 | 34 |
Нет такого профиля. Есть "Default User" и "HKU\.Default". Вы о котором сейчас говорите?
Вы не прочли основную мысль, конфигурационные файлы (реестра) профиля дефолтового пользователя неоткуда читать, если только вы не подмонтируете в реестр файл: C:\users\default\ntuser.dat Но это не имеет отношения к обсуждаемой теме. У каждого пользователя могут быть свои настройки языка. Чтобы программы, которые не имеют поддержку юникода (не-юникодные контролы), воспринимали русские символы, не обязательно иметь русскую винду, и не обязательно иметь выставленный русский язык отображения диалогов. Для этого достаточно выставить 3-ю опцию: "Язык для программ, не поддерживающих юникод" на "русский". При этом язык установки и диалогов может быть английским и любая программа спокойно сможет работать на русском языке без крякозябликов. Поэтому ни один из указанных ранее в этой теме параметров не удовлетворяет условиям озвученной вами сейчас проверки. И наоборот, даже если язык установки русский, и язык отображения диалогов - русский, но язык для неюникодных программ - английский и при этом программа не поддерживает юникод, то вы получите крякозяблики на месте русских символов. Аналогично с консолью. Интересующее вас значение хранится в одном из этих параметров:
0
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|
12.09.2018, 20:15 | 35 |
Ну я имею в виду "Default User" под записью реестра "HKU\.Default"
И, как я понял, при создании новых профилей юзеров, всё равно копируются данные из "HKU\.Default". Вообщем, чтобы мне запустить русскую программу, я просто проверяю "Locale" из "HKCU\Control Panel\International" и по идее значит у юзера установлена русская Windows. Если программу запускает иностранец, португалец или испанец, то для него будет запускаться программа на английском языке. Так же я в батнике создал 2 секции с переходом goto , где в консоли cp866 так же будет отображаться текст на русском языке, в противном случае на английском.Ну вот и всё, что мне было нужно. Думаю мне этот параметр реестра вполне подходит. Остальное что-то до меня всё-равно не доходит, зачем это нужно.
0
|
12.09.2018, 23:10 | 36 |
Вы вообще читать умеете?
Я уже третий раз пишу вам что Default user это не HKU\.Default, и данные не копируются из HKU\.Default и даже привёл вам выше 3 статьи, одна из которых от разработчика Microsoft, который имеет непосредственное отношение в т.ч. к ядру, в т.ч. дал ссылку на утилиту с помощью которой вы сами можете проверить и убедится, что есть HKU\.Default, а вы продолжаете толковать своё. Ещё раз повторю: поставьте на системе с ЛЮБЫМ языком настройку "Язык для программ, не поддерживающих юникод" => Английский и вы получите крякозябли, и указанный вами параметр вас никак не спасёт. Опять повторю своё замечание: это актуально только для программ с не-юникодными контролами. Остальные будут нормально отображать русский при любых настройках языков.
1
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|
13.09.2018, 02:07 | 37 |
Хе-хе-хе. Да, я как раз читал рецензию в блоге от Майкрософт, правда читал поверхностно, без переводчика. Ну английский я читать умею и понимаю чуток без переводчиков. Но в даном случае я немного не так понял, вот выдержка из текста:
name .Default - это this user's settings и что берётся как основная база при создании нового профиля the basis for new user profiles .Теперь я перевёл это в Гугль-переводчике и вот что получилось: Ну в принципе теперь я немного понял, на этом зацикливаться не надо, т.к. что откуда и чего не так уж важно, хотя вы упорно хотите донести до меня это. Я вас понимаю, как тяжело разговаривать с непонятливым юзером Ну вы размышляете со своей колокольни, а у меня голова болит о своём. Конечно же я запускаю программу, поддерживающую юникод, конечно я это проверил, что она на любом языке системы будет правильно отображать английский язык в программе. И так же, я намеренно указал, что батник сохранён в кодировке cp866, которая диалоги отображает и на русском языке (при условии локали ru-RU) и на английском языке на любых других локалях. Для меня важно только одно - чтобы русскоязычные пользователи, то бышь у которых установлена русская Windows, видели сообщения в консоли на русском и, чтобы запускалась русская версия программы. А нерусская локаль, чтобы выводила в консоль английские диалоги и запускалась английская версия программы. Вот и всё. Дело в том, что прогой будут пользоваться обладатели игровых консолей, т.е. просто дети, играющие в игрушки, поэтому они не понимают простых английских предложений и надписей на кнопках в программе. То есть, все остальные махинации с реестром, тем более так глубоко, для меня на данный момент не так уж важно. Прогу я уже собрал и выложил, несколько юзеров потестили её по моей просьбе, от остальной сотни скачавших пока никаких жалоб не поступало. Пока что все говорят, что язык системы отрабатывает правильно, как русский, так и английский. Так что проблем с отлавливанием языковых параметров Windows я пока не вижу. И всё-таки, я решил использовать последний мною выложенный код, хотя там два параметра перекликаются "Local" и "LocalName", просто в разных системах координат. И он отрабатывает нормально и безошибочно (пока), я почему-то уверен, что нужно использовать именно их и этого вполне достаточно. Насчёт PreferredUILanguages у меня большие сомнения в необходимости его включать и проверять, т.к. я писал уже, что у меня он отсутствует, как может отсутствовать и других.
0
|
0 / 0 / 0
Регистрация: 08.10.2017
Сообщений: 9
|
||||||
17.04.2019, 12:54 | 38 | |||||
Не буду создавать отдельную тему т.к. проблематика схожая
Готовые VBS скрипты для управления принтерами в Windows присутствуют во всех версиях Windows (начиная с Vista и Windows Server 2008) и находятся в каталоге C:\Windows\System32\Printing_Admin_Scripts\en-US. Вместо каталога en-US может быть другой каталог, соответствующий языку установленной системы. Для русской версии Windows это будет каталог ru-RU (полный путь C:\Windows\System32\Printing_Admin_Scripts\ru-RU); В Windows XP и Windows Server 2003 эти vbs скрипты хранятся в каталоге C:\WINDOWS\system32 есть необходимость в определении в каком именно каталоге находятся скрипты Добавлено через 11 минут в догонку: P.S. пытаюсь унифицировать пакетник для установки принтера(в организации xp, win7, win7x64, win10 и win10x64) на текущий момент творение выглядит так:
0
|
0 / 0 / 0
Регистрация: 08.10.2017
Сообщений: 9
|
|
21.04.2019, 10:28 | 40 |
FlasherX, стесняюсь спросить какой ключ поможет определить папку в которой находятся скрипты?
C:\Windows\System32\Printing_Admin_Scripts\en-US или C:\Windows\System32\Printing_Admin_Scripts\ru-RU или еще какой...
0
|
21.04.2019, 10:28 | |
21.04.2019, 10:28 | |
Помогаю со студенческими работами здесь
40
XP Как изменить язык системы? Как изменить язык системы Как програмно изменить язык системы? Как получить текущий язык системы в Android? Как сменить язык системы Linux Mint 17.3 Английский язык для окна ввода пароля, русский язык для самой системы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |