![]() |
Windows System Spache auslesen
Hallo,
ich muss die Windows System Sprache auslesen. Klingt leicht ist es aber nicht, denn ich möchte die wirkliche Installations Sprache auslesen. Ich habe z.B. viele Infos gefunden, jedoch wenn ich in einem englischen WinXP die Sprache auf Deutsch umstelle, dann wird mir Deutsch angezeigt! Grund warum ich das benötige: Ich muss auf mehreren Systemen, egal welche Sprache, in die lokale Admingruppe weitere Domain Gruppen, bzw. User eintragen. Da sich aber hier der Name der lokalen Admingruppe je Sprache ändert, will ich dies an Hand der installerten Sprache heraufinden und gezielt ansteuern. Hat jemand eine Idee wie ich die installierte OS Sprache herausfinde, oder gibt es eventuell eine andere Möglichkeit den Namen der lokalen Admingruppe auszulesen? Danke für eure Hilfe! |
Re: Windows System Spache auslesen
Herzlich willkommen in der Delphi-PRAXiS, sh030169.
Alleine durch schmökern im Windows SDK finde ich das hier: MS schreibt zu GetSystemDefaultUILanguage Remarks This is the install language or the localized operating system language. Ausprobieren mag ich es jetzt nicht, aber es riecht so, als wäre es das was du suchst. Freundliche Grüße vom marabu |
Re: Windows System Spache auslesen
Zitat:
|
Re: Windows System Spache auslesen
Zitat:
Ich habe meinen Computer gerade nicht zur hand (ich habe mal für eine Projekt eine relativ umfangreiche Unit geschrieben, die sich mit Sprachen im System beschäftigt), falls bis dahin niemand anders den Namen genannt hat, melde ich mich selbst nochmal. Grüße, Max |
Re: Windows System Spache auslesen
das mit den SIDs klingt gut!
wie kann ich diese SIDs auslesen? |
Re: Windows System Spache auslesen
Moin,
Die Systemsprache bekommst du mit
Delphi-Quellcode:
.
GetSystemDefaultLangID;
Den Namen davon bekommst du mit
Delphi-Quellcode:
Grüße,
function GetLanguageNameByID(AID: Integer): WideString;
begin SetLength(Result,MAX_PATH); SetLength(Result, VerLanguageNameW(AID,@Result[1], length(Result))); end; Max |
Re: Windows System Spache auslesen
Diese Routine und auch die aus der Code-Lib gibt mir immer Deutsch (Deutschland) zurück. Gibts auch eine Möglichkeit nur Deutsch als Rückgabewert zu erhalten. Weiß ja nicht wie das ist, wenn ich jetzt einfach die klammer und deren Inhalt aus den String entferne, ob das immer klappt. Kann mir da einer helfen?
|
Re: Windows System Spache auslesen
Moin,
Naja, da würde mir nur die Brecheisenmethode einfallen, sprich, Pos und Delete/Copy. Wenn keine Klammer vorhanden ist, wird auch nichts gelöscht. Kleiner (vielleicht fehlerbehafteter, bin gerade nicht am Produktiv-System, also kein Delphi) Code zur Veranschaulichung bzw. ein Lösungsvorschlag:
Delphi-Quellcode:
Grüße,
function DeleteBracket(lString: string): string;
var I: Integer; begin I := Pos('(', lString); if I <> 0 then begin Result := Copy(1, I - 1, lString); // Bei der genauen Sysntax und dem -1 bin ich nicht ganz sicher, einfach testen! end else begin Result := lString; end; end; Max Edit: Kleine Code Anpassung (der IF-Teil) |
Re: Windows System Spache auslesen
Hallo,
wer diesen Thread wegens seines Titels findet, der sollte wissen: Da ist ein feiner Unterschied zwischen GetSystemDefaultUILanguage() und GetSystemDefaultLangID(). Letzteres kann vom Administrator geändert werden, ersteres nicht. Die Sprache ohne den SubLanguage-Zusatz erhält man übrigens so:
Delphi-Quellcode:
Freundliche Grüße
// function GetSystemDefaultUILanguage: LANGID; external kernel32 name 'GetSystemDefaultUILanguage';
function NativeLangName(lcid: LCID): string; var buffer: array [Byte] of Char; begin SetString(Result, buffer, GetLocaleInfo(lcid, LOCALE_SNATIVELANGNAME, buffer, SizeOf(buffer))); end; // ShowMessage(NativeLangName(GetSystemDefaultUILanguage)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz