![]() |
Feststellen wann bei Windows An- und abgemeldet?
wie kann man feststellen, ob sich der User gerade bei Windows mit (WinTaste+L) abmeldet, und wenn er sich dann wieder anmeldet?
|
Re: Feststellen wann bei Windows An- und abgemeldet?
Zitat:
|
Re: Feststellen wann bei Windows An- und abgemeldet?
für was benötigst du das und unter welchem Betriebssystem soll es laufen?
|
Re: Feststellen wann bei Windows An- und abgemeldet?
Zitat:
Ist aber nur das eine Programm.. wollte es nach dem Anmelden quasi wieder herstellen. Gruß |
Re: Feststellen wann bei Windows An- und abgemeldet?
wenn ich dich richtig verstehe, sollte dir das helfen:
Delphi-Quellcode:
Gruß Frank
function IsWorkstationLocked: Boolean;
var hDesktop: HDESK; begin Result := False; hDesktop := OpenDesktop('default', 0, False, DESKTOP_SWITCHDESKTOP); if hDesktop <> 0 then begin Result := not SwitchDesktop(hDesktop); CloseDesktop(hDesktop); end; end; |
Re: Feststellen wann bei Windows An- und abgemeldet?
nicht wirklich die beste Methode. In einem Service oder mit ausreichend Berechtigungen schlägt diese Prüfung fehl.
[Edit] Über google hab ich grad folgende Windows-Message gefunden: WM_WTSSESSION_CHANGE Ich glaub das dürfte die sein die du suchst. Hab mal was zusammengetippt:
Delphi-Quellcode:
[/Edit]
const
NOTIFY_FOR_ALL_SESSIONS = 1; type [...] private fRegisterSuccess: Bool; procedure WMWTSSESSIONCHANGE(var AMsg: TMessage); message WM_WTSSESSION_CHANGE; end; function WTSRegisterSessionNotification(AHandle: HWND; AFlags: DWORD): Bool; stdcall external 'wtsapi32.dll'; function WTSUnRegisterSessionNotification(AHandle: HWND): Bool; stdcall external 'wtsapi32.dll'; [...] implementation procedure TForm1.WMWTSSESSIONCHANGE(var AMsg: TMessage); begin case AMsg.WParam of WTS_SESSION_LOCK : Memo1.Lines.Add('Gesperrt um: ' + TimeToStr(Time())); WTS_SESSION_UNLOCK: Memo1.Lines.Add('Entsperrt um: ' + TimeToStr(Time())); end; inherited; end; procedure TForm1.FormCreate(Sender: TObject); begin fRegisterSuccess := WTSRegisterSessionNotification(Self.Handle, NOTIFY_FOR_ALL_SESSIONS); end; procedure TForm1.FormDestroy(Sender: TObject); begin if fRegisterSuccess then WTSUnRegisterSessionNotification(Self.Handle); end; |
Re: Feststellen wann bei Windows An- und abgemeldet?
Liste der Anhänge anzeigen (Anzahl: 1)
mal das Beispiel-Programm von
![]() (ist evtl. was für die CodeLib) bisschen umfangreicher als der Code von SirT HTH Frank |
Re: Feststellen wann bei Windows An- und abgemeldet?
beim link ist eben ein kompletter Quelltext zu finden und nicht nur die relevanten Teile. Zudem sind die Constanten neu definiert wurden.
|
Re: Feststellen wann bei Windows An- und abgemeldet?
Hi ! besten Dank, der Tip mit WM_WTSSESSION_CHANGE war der Richtige, habs dann auch selber bei SwissdelphiCenter gefunden :-)
funktioniert wunderbar. Dankeschön ! ![]() |
Re: Feststellen wann bei Windows An- und abgemeldet?
Für XP gibts auch noch die Winlogon Notifier .. dürfte die Beste Lösung sein. Gibt da verschiedene Events, die aufgerufen werden .. musst du mal im PSDK suchen ..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 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 by Thomas Breitkreuz