AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls bei WM_QUERYENDSESSION Return Value True zurückschicken!Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

bei WM_QUERYENDSESSION Return Value True zurückschicken!Wie?

Ein Thema von SimStar001 · begonnen am 10. Apr 2009 · letzter Beitrag vom 11. Apr 2009
Antwort Antwort
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#1

bei WM_QUERYENDSESSION Return Value True zurückschicken!Wie?

  Alt 10. Apr 2009, 19:01
Hallo, ich habe ein Programm, das im Tray läuft, und erst beendet werden kann, wenn das der User zulässt.

Also wird dann das Herunterfahren abgebrochen, solange mein Programm läuft.
Jetzt fange ich die Nachricht zum Herunterfahren ab und lasse mein Programm schließen. Wie sende ich dann aber den Return VALUE True, wie es hier steht? WM_QUERYENDSESSION

Vielen Dank für die Hilfe.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: bei WM_QUERYENDSESSION Return Value True zurückschicken!

  Alt 10. Apr 2009, 19:06
Forensuche: Hier im Forum suchenWM_QUERYENDSESSION
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#3

Re: bei WM_QUERYENDSESSION Return Value True zurückschicken!

  Alt 10. Apr 2009, 19:08
Danke, hatte ich schon benutzt, aber nicht das für mich passende gefunden, vielleicht habe ich es aber auch nur übersehen in der Eile...
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: bei WM_QUERYENDSESSION Return Value True zurückschicken!

  Alt 10. Apr 2009, 19:16
Weise dem Member Result der TMessage Struktur einfach einen Wert von 1 (true) zu.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: bei WM_QUERYENDSESSION Return Value True zurückschicken!

  Alt 10. Apr 2009, 19:17
Wie wäre es mit Message.Result?
Aber davon abgesehen solltest du wenn das Programm unter Vista oder höher läuft unbedingt ShutdownBlockReasonCreate / ShutdownBlockReasonDestroy verwenden:
http://msdn.microsoft.com/en-us/library/aa376877.aspx
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#6

Re: bei WM_QUERYENDSESSION Return Value True zurückschicken!

  Alt 10. Apr 2009, 20:13
Danke, habs jetzt hinbekomen, und klapt auch super.

Was das ShutdownBlockReasonDestroy / ShutdownBlockReasonCreate für Vista und höher betrifft:
Es wird da doch auch WM_QUERYENDSESSION versandt, und auf das kann ihc doch antworten? Dann brauche ich doch die beiden Funktionen nicht, wenn ich das http://msdn.microsoft.com richtig verstanden habe.

Ich will ja einfach nur in meiner Anwendung intern den Wert dafür, dass mein Programm beendet werden darf auf True setzen.

Oder irre ich mich da?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: bei WM_QUERYENDSESSION Return Value True zurückschicken!

  Alt 10. Apr 2009, 20:49
Zitat von SimStar001:
Es wird da doch auch WM_QUERYENDSESSION versandt, und auf das kann ihc doch antworten? Dann brauche ich doch die beiden Funktionen nicht, wenn ich das http://msdn.microsoft.com richtig verstanden habe.
Das wird auch versendet, aber der Benutzer bekommt angezeigt, dass dein Programm nicht beenden möchte, aber keinen Grund. Was willst du wetten, dass ein Großteil der Anwender das Herunterfahren fortsetzen?

Wenn du das mit ShutdownBlockReasonCreate machst, dann steht da z.B., das Brennprogramm XY nicht geschlossen werden konnte und der selbst definierte Grund. Z.B. "Es ist ein Brennvorgang im Gang, abbrechen macht den Rohling unbrauchbar!" oder sowas.

Damit sieht der Anwender, warum du das Herunterfahren blockieren möchtest, nicht nur, dass du es tun möchtest.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#8

Re: bei WM_QUERYENDSESSION Return Value True zurückschicken!

  Alt 11. Apr 2009, 02:19
Alles klar, so habe ich die Erklärung auch verstanden.
Nur glaube ich wurde ich falsch verstanden, bzw. ist nicht klar herausgegangen was ich eigentlich bezwecken möchte.

Ich will das Herunterfahren durch den Benutzer auf jeden Fall durchführen lassen. Nur musste ich halt vorher das Herunterfahren abfangen, um in meinem Programm ein Beenden dessen zuzulassen.

Habe ich das getan, und dann nicht True zurückgesendet, wurde der Rechner dann nicht heruntergefahren.
Jetzt nach dem Senden von True, wird alles wie gewünscht ausgeführt. Da das ja auch unter Windows Vista funktioniert, und ich ja nicht das Herunterfahren blockieren möchte, denke ich, dass ich es dabei belassen kann.


Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: bei WM_QUERYENDSESSION Return Value True zurückschicken!

  Alt 11. Apr 2009, 02:36
Ja, sicher, in dem Fall reicht das, ja. Da hatte ich in dem Moment nicht mehr dran gedacht als ich das oben geschrieben hatte.
Sebastian Jänicke
AppCentral
  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 00:34 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