Benutzername unter Mac OS X?

Antworten
jwdietrich
Beiträge: 167
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-13.4, Windows 2000-11, Raspbian (L 2.2.6, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Benutzername unter Mac OS X?

Beitrag von jwdietrich »

Wie kann ich den Namen des angemeldeteten Benutzers abfragen?

Unter Windows geht das ja relativ einfach mit

Code: Alles auswählen

var
  gUserName: String;
  arraySize: DWord;
 
begin
  GetUserName(UserName, arraySize);
  gUserName := String(UserName)
end;

aber am Mac ist das natürlich anders implementiert.

Leider bietet FreePascal offensichtlich keine entsprechende generische Funktion an. Oder habe ich die übersehen?


jwdietrich
Beiträge: 167
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-13.4, Windows 2000-11, Raspbian (L 2.2.6, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Benutzername unter Mac OS X?

Beitrag von jwdietrich »

Gerade habe ich eine Lösung gefunden, die plattformunabhängig funktioniert:

Code: Alles auswählen

var
  gUserName: String;
  arraySize: DWord;
 
begin
  {$IFDEF win32}
  GetUserName(UserName, arraySize);
  gUserName := String(UserName);
  {$ELSE}
  gUserName := GetEnvironmentVariable('USER');
  {$ENDIF}     
end;


Unter Windows wird also die Windows-Funktion GetUserName eingesetzt, auf allen anderen Plattformen die Umgebugnsvariable "USER". Am Mac funktioniert das wunderbar, es müsste auch unter Linux gehen, aber das habe ich noch nicht getestet.

jwdietrich
Beiträge: 167
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-13.4, Windows 2000-11, Raspbian (L 2.2.6, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Benutzername unter Mac OS X?

Beitrag von jwdietrich »



Das ist eine andere Möglichkeit, ich weiß nicht, welche die bessere ist.

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Benutzername unter Mac OS X?

Beitrag von theo »

Eigentlich ist

{$IFDEF win32}
...
{$ELSE}

nicht gut. Da fällt 64bit und WinCE unter ELSE.

http://www.freepascal.org/docs-html/prog/progap7.html

Wahrsch. wäre ifdef UNIX else der beste Weg.

jwdietrich
Beiträge: 167
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-13.4, Windows 2000-11, Raspbian (L 2.2.6, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Benutzername unter Mac OS X?

Beitrag von jwdietrich »

theo hat geschrieben:Eigentlich ist

{$IFDEF win32}
...
{$ELSE}

nicht gut. Da fällt 64bit und WinCE unter ELSE.

http://www.freepascal.org/docs-html/prog/progap7.html

Wahrsch. wäre ifdef UNIX else der beste Weg.


Stimmt, das habe ich nicht bedacht!

Antworten