![]() |
Den angemeldeten User in Windows ermitteln
Hallo,
ich lasse ein Programm über eine Softwareverteilung mit dem User SYSTEM starten. Das funktioniert auch wunder bar. Ich habe nur ein Problem, im Programm benutze ich die folgende Funktion um den Usernamen zu ermitteln :
Delphi-Quellcode:
Nur leider liefert mir diese Funktion den Benutzernamen zurück, unter welchen ich das Programm ausführe. Also in meinem Fall SYSTEM. Gibt es noch einen anderen Weg um an den aktuell angemeldeten Benutzer zu kommen ?
function GetCurrUserName: string;
var Size : DWORD; begin Size := MAX_COMPUTERNAME_LENGTH + 1; SetLength(Result, Size); if GetUserName(PChar(Result), Size) then SetLength(Result, Size) else Result := ''; end; |
Re: Den angemeldeten User in Windows ermitteln
Muß denn überhaupt ein User angemeldet sein wenn diese Software-Verteilung läuft? Denn wenn keiner Angemeldet kann man auch nichts bestimmen. Dann könntest du nur schauen welche user schon mal lokal angemeldet waren.
|
Re: Den angemeldeten User in Windows ermitteln
Die Anwendung wird erst dann gestartet, wenn der User sich angemeldet hat, vorher nicht.
|
Re: Den angemeldeten User in Windows ermitteln
Na dann guck, ob du die interaktive Windowssession WinSta0 findest.
|
Re: Den angemeldeten User in Windows ermitteln
Was sagr den die Umgebeungsvariable username?
|
Re: Den angemeldeten User in Windows ermitteln
Danke Leutz, ich habe mal wieder den Wald vor lauter Bäumen nicht gesehen. Ich habe es jetzt über die Variable USERNAME gelöst.
|
Re: Den angemeldeten User in Windows ermitteln
Wie funktioniert denn das?
Die cmd Variable Username gibt den Name des derzeit eingeloggten Benutzers? Als SystemDienst, wird doch da SYSTEM geliefert!? Und was verstehst du unter eingeloggt? Ist jemand eingeloggt, wenn der direkt vor dem Bildschirm sitzt, oder geht es auch, wenn jemand über ein Terminal (RDP) eingeloggt ist? |
Re: Den angemeldeten User in Windows ermitteln
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Den angemeldeten User in Windows ermitteln
Achtung. Der Code ist falsch.
Size sollte mit UNLEN + 1 = 256 + 1 initialisiert werden, nicht mit MAX_COMPUTERNAME_LENGTH + 1 Sonst schlägt das bei langen Usernamen fehl. |
AW: Re: Den angemeldeten User in Windows ermitteln
Zitat:
Zwei Möglichkeiten:
Auch 2007 waren die NT-basierten Windowsversionen bereits multiuserfähig. Aber selbst dann war ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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