AGB  ·  Datenschutz  ·  Impressum  







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

OnClose problem

Ein Thema von qb-tim · begonnen am 1. Sep 2006 · letzter Beitrag vom 6. Sep 2006
Antwort Antwort
Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#1

OnClose problem

  Alt 1. Sep 2006, 16:56
Hi,

Ich glaube ich werde schon im DP-Forum für meine etwas merkwürdigen Beiträge für Überwachungsprogramme berüchtigt. Tut mir leid, wenn ich irgendetwas falsch gemacht habe...

Ich Programmiere ein Programm, der etwas wie ein Task-Manager "4Dummies" ist. Es kann nur anzeigen, welche Fenster und Programme offen oder minimiert sind und die Programme in der Taskbar auflisten. Es kann aber auch die Programme schließen (eben wie ein normaler Task-Manager). Damit das Programm nicht von externen Personen (Häcker u.a) dazu benutzt werden kann, Programme zum Abstürzen zu bringen, muss der Benutzter einen PIN eingeben, der bei der ersten Benutzung festgelegt und codiert gespeichert wird.
Außerdem soll dieses Programm anzeigen, wann zuletzt ein- und ausgelogged wurde. Ich habe mich entschieden dazu die ONCLOSE Prozedur dafür zu benutzen... Mein Problem ist:

Wie lasse ich die OnClose Prozedur laufen, wenn der Benutzer auslogged bzw. den Computer herunterfährt?
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.640 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: OnClose problem

  Alt 5. Sep 2006, 10:51
Du meinst, das OnClose nicht aufgerufen wird, wenn Windows herunterfährt?

Der Einstiegspunkt beim Herunterfahren wäre:

Delphi-Quellcode:
TMyForm = class(TForm)
private
    procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
    procedure WMEndSession(var Msg: TMessage); message WM_ENDSESSION;
end;
Dort kannst Du Deine abschliessenden Dinge ausführen lassen.
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#3

Re: OnClose problem

  Alt 5. Sep 2006, 20:16
Wie baue ich das denn ein?

(Tut mir leid wenn ich so dumm frage... )
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.640 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: OnClose problem

  Alt 6. Sep 2006, 09:16
Einfach die beiden prozeduren oben in in den private-Bereich Deines Hauptformulares kopieren, Klasse vervollständigen.

Du benötigst eigentlich nur die WMEndSession.

Delphi-Quellcode:
TMyForm = class(TForm)
  procedure FormCreate(Sender: TObject);
  procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
  Closed : Boolean;
  procedure DoClose;
  procedure WMEndSession(var Msg: TMessage); message WM_ENDSESSION;
end;

...

procedure TMyForm.FormCreate(Sender: TObject);
begin
  Closed := false;
end;

procedure TMyForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DoClose;
end;

procedure TMyForm.WMEndSession(var Msg: TMessage);
begin
  DoClose;
end;

procedure TMyForm.DoClose;
begin
  if Closed then exit;
  Closed := true;
 
  //sonst was machen
end;
Sven Harazim
--
  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 06:58 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