Знаем, что в англоязычной ОС можно изменить язык и местоположение, например, Россия, и тогда в реестре
HKEY_CURRENT_USER\Control Panel\International\Locale будет равен 419.
Но как программно определить языковую версию ОС? Например, вместо надписи на кнопке "Пуск" английское слово "Start",хотя там Locale = 419.
Здравствуйте, AntonSC, Вы писали:
ASC>Знаем, что в англоязычной ОС можно изменить язык и местоположение, например, Россия, и тогда в реестре ASC>HKEY_CURRENT_USER\Control Panel\International\Locale будет равен 419.
ASC>Но как программно определить языковую версию ОС? Например, вместо надписи на кнопке "Пуск" английское слово "Start",хотя там Locale = 419.
ASC>Заранее спасибо!
Посмотреить на то, какая локализация у ресурсов версии например в kernel32.
{Получаем языки, которые прописаны в kernel32}
FixSize := GetFileVersionInfoSize('kernel32.dll', Temp);
GetMem(PFix, FixSize);
IsRussian := FALSE;
try
if GetFileVersionInfo('kernel32.dll', Temp, FixSize, PFix)
then begin{Извлекаем ресурс с языками}if VerQueryValue(PFix, '\VarFileInfo\Translation', Pointer(LangIDS), LangIDLng)
then begin{Проверяем наличие в библиотеке информации с русским языком}while LangIDLng > 0 do begin
IsRussian := IsRussian or ((LangIDS^ and $FFFF) = $0419);
Inc(LangIDS);
Dec(LangIDLng, SizeOf(LangIDS^));
end;
end;
end;
except
...
end;
P.S. Выдрал из живого проекта — работает
С уважением Михаил Копачев
... << RSDN@Home 1.1.4 @@subversion >>
Re[2]: Как программно определить языковую версию ОС?
Спасибо за Вашу мгновенную реакцию на мой вопрос! Теперь стало понятно, например, что при запуске SP1Eng в русскоязычной ОС WinXP также проверяется такой файл kernel32.dll на языковую версию ОС...
Антон
Re[2]: Как программно определить языковую версию ОС?
Здравствуйте, mkopachev, Вы писали:
M> Посмотреить на то, какая локализация у ресурсов версии например в kernel32. M>P.S. Выдрал из живого проекта — работает
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, mkopachev, Вы писали:
M>> Посмотреить на то, какая локализация у ресурсов версии например в kernel32. M>>P.S. Выдрал из живого проекта — работает
OE>как насчет винды с MUI
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, mkopachev, Вы писали:
M>> Посмотреить на то, какая локализация у ресурсов версии например в kernel32. M>>P.S. Выдрал из живого проекта — работает
OE>как насчет винды с MUI
А мне по барабану что написано на кнопках — у меня программа — сервер, и мне важно именно то от какой версии винды (русской или английской) системные библиотеки.
Знаешь более хороший способ определения языка оси — поделись ?
С уважением Михаил Копачев
... << RSDN@Home 1.1.4 @@subversion >>
Re[4]: Как программно определить языковую версию ОС?
Здравствуйте, mkopachev, Вы писали:
M>>> Посмотреить на то, какая локализация у ресурсов версии например в kernel32. M>>>P.S. Выдрал из живого проекта — работает
OE>>как насчет винды с MUI
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, mkopachev, Вы писали:
M>>>> Посмотреить на то, какая локализация у ресурсов версии например в kernel32. M>>>>P.S. Выдрал из живого проекта — работает
OE>>>как насчет винды с MUI
Чтоб я не знал эту MUI никогда! Я сейчас занятия веду по администрированию W2003 сервера. Так поставили у нас эту MUI. Кто такие "Domain Admins" — я знаю, а на "Администраторы домена" — у меня реакция не та, да и искать их все время не там пытаюсь. Кроме того, при наличии группы "Администраторы домена" присутствует группа "DnsAdmins", и эта смесь английского с русским меня из себя выводит .
Словом, решили в MUI поставить обратно англиийский. Что, думаете "Администраторы домена" стали "Domain Admins" ? Черта с два. Так и осталась группа "Администраторы домена" . Тогда в отчаянии деинсталлировали MUI совсем, но "Администраторы домена" и после этого в "Domain Admins" превращаться не захотели.