Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sprachversion des OS herausfinden (https://www.delphipraxis.net/123820-sprachversion-des-os-herausfinden.html)

kuba 9. Nov 2008 15:20


Sprachversion des OS herausfinden
 
Hallo,

weiss jemand wie man mit delphi die Sprachversion des OS herausfinden kann ?

Ausserdem suche ich Informationen zur Gruppe "Administratoren" und "Benutzer", hier benötige ich in "allen möglichen" Sprachen die Namen der Gruppen z.B. administrators, administratoren, administrateurs, administratori, etc.

In der DP habe ich schon die Suchfunktion benutzt, aber leider nichts verwendbares gefunden Hier im Forum suchenSprachversion

kuba

omata 9. Nov 2008 15:25

Re: Sprachversion des OS herausfinden
 
Schau doch mal hier, vielleicht hilft es ja weiter.

kuba 9. Nov 2008 15:32

Re: Sprachversion des OS herausfinden
 
Hy,

das sieht schon ganz gut aus, um "alle Sprachen" herauszufinden müsste ich jedoch alle OS´s vorliegen haben und ausprobieren. Eine Info zu "allen Sprachen" müsste aber doch irgendwo zu finden sein.

KUBA

omata 9. Nov 2008 15:38

Re: Sprachversion des OS herausfinden
 
Dann schau auch mal hier.

kuba 9. Nov 2008 15:47

Re: Sprachversion des OS herausfinden
 
Zitat:

Zitat von omata
Dann schau auch mal hier.

Ja supi, danke ! :cheers:

Fehlen mir jetzt nur noch die Gruppennamen in "allen Sprachen" ...

KUBA

omata 9. Nov 2008 16:01

Re: Sprachversion des OS herausfinden
 
Vielleicht hilft das hier.

kuba 9. Nov 2008 16:13

Re: Sprachversion des OS herausfinden
 
Hy,

vielen Dank, aber genau dafür benötige ich die Gruppennamen :|

Ich möchte in meinem Programm die Sprachversion des OS herausfinden:

Delphi-Quellcode:
Function GetSystemLanguage: String;
Var
  Text: Array [0..100] of Char;
Begin
  VerLanguageName (GetSystemDefaultLangID, Text, Length (Text));
  Result := String (Text);
End;
und einem bestimmten Benutzer eine Gruppe zuweisen, z.B. NET LOCALGROUP administratori GRUPPE /ADD
selbstverständlich mit Delphi :zwinker:

Dazu benötige ich die Gruppennamen in allen Sprachen.

KUBA

omata 9. Nov 2008 16:23

Re: Sprachversion des OS herausfinden
 
Das war mir schon klar. Aber bist du sicher das du das einem bestimmten Benutzer geben willst? Oder willst du nicht einem Benutzer mit Adminrechten etwas zuweisen? Ermittle doch wer von den Benutzern auf dem System Adminrechte hat und lass den Benutzer entscheiden, welchem Benutzer nun konkret die neuen Einstellungen zugewiesen werden. Oder gib allen Benutzern, die Adminrechte besitzen die neuen Einstellungen.

Schau auch mal hier.

kuba 9. Nov 2008 16:39

Re: Sprachversion des OS herausfinden
 
nee, ich hab einen (ganz bestimmten) Benutzer mit "Benutzerrechten", zur Ausführung eines bestimmten Kommandos benötigt dieser Benutzer vorübergehend "Administratorrechte"

Das Programm funktioniert bereits, jedoch nur mit "Deutsch" und "Englisch", um weitere Sprachen zu unterstützen benötige ich die Gruppennamen in "allen Sprachen". Zur Zeit habe ich in die Gruppenzuweisung einfach die Gruppennamen in beiden Sprachen hinterlegt, das ist aber nicht schön ...
Daher will ich in Zukunft erst die Sprachversion des OS herausfinden und dann gleich den richtigen Gruppennamen zuweisen.

Die Zuweisung der Gruppe erfolgt durch einen Windows NT Systemdienst, hier das Programm (Freeware)

KUBA

Lasse2002 9. Nov 2008 17:54

Re: Sprachversion des OS herausfinden
 
Und was machst du, wenn du ein englisches System mit deutschem Sprachpack hast, oder wenn die Administratoren-Gruppe umbenannt wurde?

Mein Vorschlag wäre, einfach den Namen der Gruppe von Windows zu erfragen:

Delphi-Quellcode:
function AdminGroupName: string;
const
  SIDAuthNT: SID_IDENTIFIER_AUTHORITY = (value: (0, 0, 0, 0, 0, 5));
var
  pAdminSID: PSID;
  Name, Domain: PChar;
  LenName, LenDomain: Cardinal;
  Use: Cardinal;
  Res: BOOL;
begin
  if AllocateAndInitializeSid(SIDAuthNT, 2, $20, $220, 0, 0, 0, 0, 0, 0, &pAdminSID) then
  try
    Name := nil;
    LenName := 0;
    Domain := nil;
    LenDomain := 0;

    Res := LookupAccountSid(nil, pAdminSID, Name, LenName, Domain, LenDomain, Use);
    if not Res and (GetLastError = 122) then
    begin
      Name := StrAlloc(LenName);
      Domain := StrAlloc(LenDomain);
      Res := LookupAccountSid(nil, pAdminSID, Name, LenName, Domain, LenDomain, Use);
    end;
    if Res then
      Result := Copy(Name, 1, LenName);
    StrDispose(Name);
    StrDispose(Domain);
  finally
    FreeSid(pAdminSID);
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz