AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Windows wartet beim beenden auf mein Progr. Wie vehindern?
Thema durchsuchen
Ansicht
Themen-Optionen

Windows wartet beim beenden auf mein Progr. Wie vehindern?

Ein Thema von romber · begonnen am 11. Jul 2008 · letzter Beitrag vom 11. Jul 2008
Antwort Antwort
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Windows wartet beim beenden auf mein Progr. Wie vehindern?

  Alt 11. Jul 2008, 15:44
Ich habe ein kleines Updateprogramm erstellt, dass mit Windows startet, immer aktiv ist und durch Klick auf TrayIcon geöffnet werden kann. In OnCloseQuery der Hauptform habe wird eine MessageBox erstellt, in der Benutzer gefragt wird, ob das Programm wirklich beendet werden soll. Das Problem ist, dass diese Meldung auch erscheint, wenn Windows beendet wird. Das möchte ich verhindern. Wir kann ich das machen?
  Mit Zitat antworten Zitat
HeinzJ

Registriert seit: 17. Aug 2007
Ort: Bremen
84 Beiträge
 
Delphi 2007 Architect
 
#2

Re: Windows wartet beim beenden auf mein Progr. Wie vehinder

  Alt 11. Jul 2008, 15:50
Vielleicht in dem du das "Windowsereignis" vom Aufrufen der Messagebox ausschließt oder nur auf Benutzereingaben per Maus und Tastatur reagierst.

HeinzJ
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Windows wartet beim beenden auf mein Progr. Wie vehinder

  Alt 11. Jul 2008, 16:00
Ich würde eine private Variable definieren, die z.B. standardmäßig auf True steht. Dann würde ich in meinem Hauptform eine Procedure
Delphi-Quellcode:
procedure TMeinForm.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
  MeineVariable := False;
  Msg.Result := integer(true);
end;
definieren, in der die Variable auf False gesetzt wird. Im Closequery wurde ich die Messagebox nur anzeigen, wenn meine private Variable auf True steht.
Damit sollte Dein Problem gegessen sein.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#4

Re: Windows wartet beim beenden auf mein Progr. Wie vehinder

  Alt 11. Jul 2008, 17:21
Danke für die schnelle Reaktionen!

Zitat von HeikoAdams:
Damit sollte Dein Problem gegessen sein.
Leider nicht. Ich habe in der Deklaration der Form im Abschnitt private eine Variable erstellt, die dann in OnCreate auf true gesetzt wird. Dann überpüfe ich diese Variable in OnClose. Trotzdem erscheint die Meldung, wenn ich Windows beenden möchte.

Mache ich etwas falsch?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Windows wartet beim beenden auf mein Progr. Wie vehinder

  Alt 11. Jul 2008, 18:09
Reagierst Du denn auch auf WM_QUERYENDSESSION?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#6

Re: Windows wartet beim beenden auf mein Progr. Wie vehinder

  Alt 11. Jul 2008, 18:19
Zitat von DeddyH:
Reagierst Du denn auch auf WM_QUERYENDSESSION?
Eigentlich nicht.
Wie mache ich das?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Windows wartet beim beenden auf mein Progr. Wie vehinder

  Alt 11. Jul 2008, 18:22
Im private-Abschnitt Deines Forms trägst Du das hier ein:
Delphi-Quellcode:
procedure WMQueryEndSession(var Msg: TWMQueryEndSession);
  message WM_QUERYENDSESSION;
Im implementation-Teil dann das, was weiter oben bereits gepostet wurde.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Windows wartet beim beenden auf mein Progr. Wie vehinder

  Alt 11. Jul 2008, 20:04
Wenn du das das Programm über das Trayicon anzeigst brauchst du ja nichtmal auf diese Message reagieren. Dann wäre es doch das einfachste im OnCloseQuery nur nachzufragen wenn das Programm auch sichtbar ist.
Denn nur wenn es sichtbar ist kann es durch den Nutzer per Maus bzw. Alt+F4 beendet werden. In allen anderen Fällen wird es also nicht direkt durch den Benutzer beendet.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#9

Re: Windows wartet beim beenden auf mein Progr. Wie vehinder

  Alt 11. Jul 2008, 20:27
Danke Euch allen! Es klappt!
  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 21:31 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