Jaka jest wersja jezykowa systemu xp ?

0

Witajcie

Mam pytanie znacie polecenie na sprawdzenie wersji jezykowej systemu XP ?

Jak pobrac do zmiennej dana jaki system xp jest zainstalowany to znaczy z jaka wersja jezykowa ?

0
var UserLang, SystemLang:array[0..255] of char;
begin
VerLanguageName(
    GetUserDefaultLangID(),
    @UserLang,
    sizeof(UserLang)
    );
MessageBox(
    0,
    PChar(Format('(0x%x) %s', [GetUserDefaultLangID(), UserLang])),
    'Język użytkownika',
    MB_OK or MB_ICONINFORMATION
    );

VerLanguageName(
    GetSystemDefaultLangID(),
    @SystemLang,
    sizeof(SystemLang)
    );
MessageBox(
    0,
    PChar(Format('(0x%x) %s', [GetSystemDefaultLangID(), SystemLang])),
    'Język systemu',
    MB_OK or MB_ICONINFORMATION
    );
end;
0
if SysLocale.PriLangID = LANG_POLISH then ShowMessage('Język polski')
else if SysLocale.PriLangID = LANG_ENGLISH then ShowMessage('Język angielski')
else .........
0

@jack

  • po pierwsze życzę miłego wypisywania kodów wszystkich języków - od tego właśnie jest funkcja VerLanguageName,
  • po drugie SysLocale nie musi zawierać identyfikatora języka systemu (domyślnie jest nim inicjowany, ale właściwie jego wartość wynika z funkcji GetThreadLocale, czyli pobranie języka danego wątku, który to język można zmienić choćby przez </b>SetThreadLocale</b>).

Aby uzyskać pełne informacje o języku, można jego identyfikator rozbić na 3 części, co pokazuje poniższy kod:

function LangIDToString(LangId:LangID):string;
var Name:array[0..255] of char;
begin
VerLanguageName((LangId shl 10), Name, sizeof(Name));
result:=Name;
VerLanguageName(LangId, Name, sizeof(Name));
result:=Name+' ('+result+') ';
VerLanguageName((LangId and $3FF), Name, sizeof(Name));
result:=result+' - '+Name;
end;

begin
ShowMessage(
    PChar(
      Format(
        'Język systemu:'#13'(0x%x) %s'#13#13'Język użytkownika:'#13'(0x%x) %s',
        [
                GetUserDefaultLangID(),
                LangIDToString(GetUserDefaultLangID()),
                GetSystemDefaultLangID(),
                LangIDToString(GetSystemDefaultLangID())
        ]
      )
    )
);
end;

Dzięki temu możesz też poznać jaka odmiana języka (na przykład 'Angielski - Wielka Brytania') jest używana.

1 użytkowników online, w tym zalogowanych: 0, gości: 1