Autor Beitrag
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mo 18.12.06 13:34 
Ich habe einen Dienst der neben anderen Aufgaben den Benutzername ausliest. Statt jedoch den Benutzername des angemeldeten Users auszulesen, ließt die Funktion "SYSTEM" aus, weil der Dienst unter SYSTEM läuft. Wie bekomme ich den aktuell angemeldeten Benutzer ausgelesen? Eine andere Funktion? Die Installation des Dienstes vielleicht ändern? Oder das der Dienst unter den jeweiligen Benutzer läuft statt unter System?

Hier der Code zum Auslesen des Benutzers.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function GetCurrentUserName: string;
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
begin
  dwUserNameLen := cnMaxUserNameLen - 1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);
  Result := sUserName;
end;


Vielen Dank für die Tipps!


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am Mo 18.12.2006 um 15:31

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mo 18.12.06 15:01 
Habe hier eine Lösung gefunden.

www.delphipraxis.net...ic79311,0,asc,0.html

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 18.12.06 16:16 
Aber Vorsicht! Ich hab mir den anderen Thread jetzt nicht genauer angesehen. Aber du solltest das unbedingt auch unter Vista testen, (vorausgesetzt, dein Programm willst du auch anderen weitergeben). Denn dies ist eventuell ein Zugriff, der unter Vista nicht mehr möglich ist. Unter Windows XP konnte man noch Dienste unsauber schreiben, die dann auch auf den Desktop und so Zugriff hatten. Und sowas ist unter Vista nicht mehr möglich, jedenfalls nicht mit non-admin-Rechten.

Ob das jetzt hier zutrifft, kA, ich wollts nur gesagt haben. BTW: Hier im MSDN stehen die Kompatibilitätshinweise, die mir beim Redesign meiner Software sehr geholfen haben:
www.microsoft.com/ge...litaet.mspx?mfr=true
(Es liefen 4 Programme und 7 kleinere Tools nicht mehr unter Vista... Ich habe jetzt ca. 1 Jahr dran gearbeitet, nachdem ich die Beta 1 von MS bekommen hatte. Natürlich sind das dann auch gleich verbesserte neue Versionen. Naja, 94% done, Beta 2 Versionen laufen "schon" korrekt.)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 18.12.06 17:09 
Es gibt nicht den angemeldeten Benutzer. Welches wäre denn der aktuell angemeldete Benutzer, wenn FastUserSwitching aktiviert ist und damit zum Beispiel drei Benutzer angemeldet sind?
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mo 18.12.06 17:16 
Auch wieder war. Hintergrund des Dienstes war der Folgende. Die Dokumentation der IP-Adressen in dem Unternehmen ist nicht vorhanden. Um die Domainbenutzer zu erfassen und damit auch gleich einen IP-Historie zu haben, gibts ne kleine Anwendung, die nach der Anmeldung gestartet wird und die Daten in die Db schreiben. Andere Netzwerkteilnehmer wie Access Pionts und Printserver werden manuell erfasst. Damit ich nun weis, wann ein Aussendienst im Netzwerk ist und dafür welche IP verwendet, weil manche clever genug sind IPs zu ändern, wird ein kleiner Dienst installiert, der nur dann die Infos in die DB schreibt, wenn er in unseren LAN ist. Da die Aussendienstler sicherlich kein Userswitching betreiben, wirds wohl gehen. :-)

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.