Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Secure Message Handling in Delphi wie? (https://www.delphipraxis.net/66553-secure-message-handling-delphi-wie.html)

Delphijunkie2006 31. Mär 2006 11:33


Secure Message Handling in Delphi wie?
 
Ich habe eine Frage, wie kann ich meinem Programm die Intelligenz vermitteln, daß es merkt, wenn es abgeschossen wird und vorher noch eine Nachricht erscheint: willst du das Programm wirklich beenden?

Beispiel: Taskmanager führt einen Terminate Process auf meine Project1.exe, normalerweise geht Project1.exe stumm zu, aber meine aufmerksame Project1.exe will vorher nochmal nachfragen mit einer Messagebox z.B.: willst du das Programm wirklich beenden?

Weiß jemand wie das geht?

freak4fun 31. Mär 2006 11:37

Re: Secure Message Handling in Delphi wie?
 
Wenn das Programm "gewaltsam" geschlossen wird, kann es diese Entscheidung doch nicht mehr selbst treffen. :gruebel: Das ist doch der Sinn der Sache. Wenn du möchtest das dein Programm nachfragt, solltest du es mit Close; schließen.

[Edit]
Im OnCloseQuery z.B.:

Delphi-Quellcode:
CanClose := MessageBox(0, 'Schließen', 'Wirklich beenden?', MB_YESNO + MB_ICONQUESTION) = idYes;
Ich bin erstaunt. :)

[/Edit]

MfG
freak

mkinzler 31. Mär 2006 11:39

Re: Secure Message Handling in Delphi wie?
 
Am Einfachsten mit dem Event onCloseQuery des Hauptformulars oder direkt auf Nachricht des BS abfangen.

Delphijunkie2006 31. Mär 2006 11:48

Re: Secure Message Handling in Delphi wie?
 
Zitat:

Wenn das Programm "gewaltsam" geschlossen wird, kann es diese Entscheidung doch nicht mehr selbst treffen. Das ist doch der Sinn der Sache.
Falsch, irgendwie geht das, das ist auch eine Art Sicherheitsmechanismus.

Irgendwo habe ich mal einen C Source Code dafür gesehen, aber leider keinen in Delphi.

freak4fun 31. Mär 2006 11:51

Re: Secure Message Handling in Delphi wie?
 
Zitat:

Zitat von Delphijunkie2006
Zitat:

Wenn das Programm "gewaltsam" geschlossen wird, kann es diese Entscheidung doch nicht mehr selbst treffen. Das ist doch der Sinn der Sache.
Falsch, irgendwie geht das, das ist auch eine Art Sicherheitsmechanismus.

Irgendwo habe ich mal einen C Source Code dafür gesehen, aber leider keinen in Delphi.

Ich habs mal schnell getestet und bin überrascht zu der Erkenntnis gekommen, das ich unrecht hatte. :mrgreen: Deshalb mein Edit. ;)

MfG
freak

Delphijunkie2006 31. Mär 2006 12:11

Re: Secure Message Handling in Delphi wie?
 
Ein kleiner delphi-code wäre ganz nett zum verdeutlichen.

HIer ein Beispiel, aber das schützt nicht vor terminate process vom taskmanager, nur durch klick auf die Form:

Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
    mResult := MessageBox(self.Handle,'Save before Quit?','Confirm',MB_YESNOCANCEL or MB_ICONQUESTION);

end;

freak4fun 31. Mär 2006 12:16

Re: Secure Message Handling in Delphi wie?
 
Zitat:

Zitat von Delphijunkie2006
Ein kleiner delphi-code wäre ganz nett zum verdeutlichen.

Du gehst auf das Formular, klickst auf Ereignisse(Events) im Objektinspektor und dann per Doppelklick auf das Feld hinter OnCloseQuery. Dann öffnet sich die Methode des Ereignisses und du kannst den oben geposteten Code rein setzen. ;)

[Edit]

Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := False;
end;
Dadurch wird das Schließen auf der Ebene verhindert. :)

[/Edit]



MfG
freak

Delphijunkie2006 31. Mär 2006 12:17

Re: Secure Message Handling in Delphi wie?
 
Ja, aber siehe oben, nicht bei Terminate Process.

OnDestroy wäre logisch, aber die Form merkt ja nicht wann sie abgeschossen wird, das Ereignis wäre erst da, wenn die Form schon gekillt ist, also geht auch nicht.

freak4fun 31. Mär 2006 12:24

Re: Secure Message Handling in Delphi wie?
 
Zitat:

Zitat von Delphijunkie2006
Terminate Process

Dann ist das die Möglichkleit ein Programm zu beenden, ohne, dass das Programm etwas dagegen tun kann. ;)

Wieso willst du denn das Beenden des Programms verhindern?

MfG
freak

alcaeus 31. Mär 2006 12:36

Re: Secure Message Handling in Delphi wie?
 
Gegen den Kill kannst du nichts machen; das soll man auch nicht. Ich will schliesslich noch entscheiden koennen, ob ich was abschiesse.
Wenn es ein Programm auf einem oeffentlichen Computer ist, das nicht geschlossen werden soll, dann wuerde ich dir einen Dienst empfehlen; diese koennen nur von Administratoren gestoppt werden.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 Uhr.
Seite 1 von 2  1 2   

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