![]() |
Feststellen, ob Benutzer angemeldet ist
Ich programmiere gerade einen Dienst für Windows 2000, der bestimmte Sachen nur ausführen soll, wenn ein Benutzer angemeldet ist.
Wie kann ich feststellen, ob ein Benutzer angemeldet ist? (Der Benutzername ist mir nicht wichtig) |
Re: Feststellen, ob Benutzer angemeldet ist
Hat denn keiner eine Idee? Es muß doch einen Befehl bzw. eine Prozedur dafür geben :-D
|
Re: Feststellen, ob Benutzer angemeldet ist
Zitat:
Dies würde doch leicht gehen mit dem Benutzernamen ![]() |
Re: Feststellen, ob Benutzer angemeldet ist
und wie sieht der benutzername aus, wenn keiner angemeldet ist? '', also nicht, funktioniert nicht, das habe ich schon probiert. :-D
|
Re: Feststellen, ob Benutzer angemeldet ist
Lass es dir doch einfach irgendwie ausgeben, dann siehst du es doch ;)
|
Re: Feststellen, ob Benutzer angemeldet ist
Guck mal bei
![]() |
Re: Feststellen, ob Benutzer angemeldet ist
Moin Rainer,
schau Dir doch mal die API ![]() Wenn ich mich nicht sehr irre, dürfte kein interaktiver Benutzer angemeldet sein, wenn keine WinSta0 dabei ist. Oder anders formuliert: Existiert WinSta0 ist ein interaktiver Benutzer angemeldet. |
Re: Feststellen, ob Benutzer angemeldet ist
Ich benutze im Moment folgende Funktion:
Delphi-Quellcode:
Welchen Wert hat der String, wenn kein User angemeldet ist?
function GetUsername: String;
var Buffer: array[0..255] of Char; Size: DWord; begin Size := SizeOf(Buffer); if not Windows.GetUserName(Buffer, Size) then RaiseLastOSError; //RaiseLastWin32Error; {Bis D5}; SetString(Result, Buffer, Size - 1); end; |
Re: Feststellen, ob Benutzer angemeldet ist
GetUserName holt sich den Usernamen aus dem Token des aktuellen Prozesses - sprich du bekommst den Benutzernamen des Kontos unter dem dein Programm läuft..!
Ich würde auf LsaEnumerateLogonSessions + LsaGetLogonSessionData zurückgreifen - funktioniert entgegen PSDK auch schon unter Win2k... |
Re: Feststellen, ob Benutzer angemeldet ist
Mein Programm ist ein Service: Er läuft also immer (wenn Windows gebootet hat).
Und jetzt soll das Programm einfach nur erfahren können, ob ein Benutzer angemeldet ist oder nicht. Deswegen frage ich nach dem Wert, den GetUserName hat, wenn keiner angemeldet ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 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