Autor Beitrag
volvox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 112

WIN XP
Delphi 7 Personal
BeitragVerfasst: Sa 02.01.10 18:59 
Hi.

Ich möchte in mein Programm eine Funktion einbauen die den Windows Benutzernamen ausliest und als string speichert. Für nen Einzelplatzrechner hätte ich noch ne grobe Idee, aber mein Programm ist für unser Büro gedacht wo sich jeder mit Nutzernamen und Passwort über nen Server einloggt (WinXP Professional). Hat jemand ne Idee wo ich diese Information herbekomme?

Und wie siehts beispielsweise bei Win7 aus.

Vielen Dank
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 02.01.10 19:01 
Die Funktion ist immer die selbe. Was möchtest du haben? Den Benutzernamen.
Hmm, was heißt das auf englisch? Richtig... GetUserName...
msdn.microsoft.com/e...ibrary/ms724432.aspx
volvox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 112

WIN XP
Delphi 7 Personal
BeitragVerfasst: Sa 02.01.10 19:30 
versteh ich nicht so ganz wie ich den Namen dann als String bekomme...
Variable.GetUserName oder wie?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 02.01.10 19:39 
user profile iconvolvox hat folgendes geschrieben Zum zitierten Posting springen:
Variable.GetUserName oder wie?
:shock: Du solltest dir dringend die allerersten Grundlagen anschauen...
GetUserName ist eine Funktion und Variable kein Objekt mit GetUserName als Methode...

Ein Beispiel in Delphi findest du hier:
www.delphipraxis.net/post34095.html#34095
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 02.01.10 21:06 
Es gibt übrigens nicht den Benutzernamen. Es können auch Benutzer remote angemeldet sein zum Beispiel. Suche im MSDN GETUSERNAME liefert dir nur den Benutzer, den den aktuellen Thread ausführt. Es können aber auch andere Benutzer eine anderen Thread des gleichen Prozesses ausführen über Suche im MSDN IMPERSONATELOGGEDONUSER zum Beispiel.

Also, welchen Benutzer willst?
volvox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 112

WIN XP
Delphi 7 Personal
BeitragVerfasst: Sa 02.01.10 21:11 
Den des aktuell angemeldeten Benutzers. Es wäre nett wenn mir mal jemand die komplette Procedure dafür posten könnte (Nutzername in string X speichern), weil ich so aufgrund meiner eher schlechten Delphi-Kenntnise leider nicht weiterkomme.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 02.01.10 21:35 
user profile iconvolvox hat folgendes geschrieben Zum zitierten Posting springen:
Den des aktuell angemeldeten Benutzers.
Das können ja mehrere sein, hat user profile iconLuckie doch gerade geschrieben...

user profile iconvolvox hat folgendes geschrieben Zum zitierten Posting springen:
Es wäre nett wenn mir mal jemand die komplette Procedure dafür posten könnte (Nutzername in string X speichern)
*hust* *räusper*
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Ein Beispiel in Delphi findest du hier:
www.delphipraxis.net/post34095.html#34095
volvox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 112

WIN XP
Delphi 7 Personal
BeitragVerfasst: So 03.01.10 21:28 
Oder so :D :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function GetUsername: string;
var
  Buffer: array[0..255of Char;
  Size: DWord;
begin
  Size := SizeOf(Buffer);
  if not Windows.GetUserName(Buffer, Size) then
    RaiseLastOSError; //RaiseLastWin32Error; {Bis D5};
  SetString(Result, Buffer, Size - 1);
end;