AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sperrung des Desktops erkennen

Ein Thema von CalganX · begonnen am 7. Aug 2007
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Sperrung des Desktops erkennen

  Alt 7. Aug 2007, 16:21
Möchte man auf das Sperren und das Entsperren des Desktops (Windows + L) reagieren, muss man die Windows-Nachricht WM_WTSESSION_CHANGE (MSDN-Referenz) abfangen. Von SirThornberry kommt dazu folgender Quellcode:
Delphi-Quellcode:
const
  NOTIFY_FOR_ALL_SESSIONS = 1;

type
  TForm1 = class(TForm)
  { ... }
  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;
Man bedient sich dabei zweier Funktionen, die in der wtsapi32.dll definiert wurden. Diese sind jedoch nur in Windows XP und Vista verfügbar. Es ist dabei zu beachten, dass das statische Einbinden der Bibliothek bei anderen Windows-Versionen fehlschlagen wird - es empfiehlt sich das dynamische Einbinden der Bibliotheken.
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.
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