Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Feststellen, ob Benutzer angemeldet ist (https://www.delphipraxis.net/37003-feststellen-ob-benutzer-angemeldet-ist.html)

rainerkunze124 29. Dez 2004 14:06


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)

rainerkunze124 2. Jan 2005 20:20

Re: Feststellen, ob Benutzer angemeldet ist
 
Hat denn keiner eine Idee? Es muß doch einen Befehl bzw. eine Prozedur dafür geben :-D

Matze 2. Jan 2005 20:31

Re: Feststellen, ob Benutzer angemeldet ist
 
Zitat:

Zitat von rainerkunze124
Wie kann ich feststellen, ob ein Benutzer angemeldet ist? (Der Benutzername ist mir nicht wichtig)

Wie möchtest du es denn dann abfragen, wenn nicht per Benutzername?

Dies würde doch leicht gehen mit dem Benutzernamen so.

rainerkunze124 2. Jan 2005 22:00

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

Airblader 2. Jan 2005 22:05

Re: Feststellen, ob Benutzer angemeldet ist
 
Lass es dir doch einfach irgendwie ausgeben, dann siehst du es doch ;)

Luckie 2. Jan 2005 22:14

Re: Feststellen, ob Benutzer angemeldet ist
 
Guck mal bei Assarbad nach LoogedOn.

Christian Seehase 2. Jan 2005 22:15

Re: Feststellen, ob Benutzer angemeldet ist
 
Moin Rainer,

schau Dir doch mal die API MSDN-Library durchsuchenEnumWindowStations an.
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.

rainerkunze124 19. Jan 2005 07:14

Re: Feststellen, ob Benutzer angemeldet ist
 
Ich benutze im Moment folgende Funktion:

Delphi-Quellcode:
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;
Welchen Wert hat der String, wenn kein User angemeldet ist?

Motzi 19. Jan 2005 10:32

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...

rainerkunze124 19. Jan 2005 18:44

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 17:11 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz