AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Auf Herunterfahren reagieren [w/ Forms]
Thema durchsuchen
Ansicht
Themen-Optionen

Auf Herunterfahren reagieren [w/ Forms]

Ein Thema von DarkItachi · begonnen am 11. Dez 2010 · letzter Beitrag vom 12. Dez 2010
Antwort Antwort
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#1

Auf Herunterfahren reagieren [w/ Forms]

  Alt 11. Dez 2010, 13:52
Hallöchen,

Ich weiß nun, dass man mit:
procedure WMQueryEndSession(var Msg: TMessage); message WM_QUERYENDSESSION;
procedure WMEndSession(var Msg: TMessage); message WM_ENDSESSION;
und einer Form auf das Herunterfahren von Windows reagieren kann...

message sollen allerdings nur mit einer Form funktionieren,
weiß jemand, wie man das auch mit einer No-Form *Exe machen kann?

Also eine Anwendung ohne Forms, aber dass sie trotzdem auf das Herunterfahren von Windows reagieren kann?

Danke im Vorhinein
Developer since age 14
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Auf Herunterfahren reagieren [w/ Forms]

  Alt 11. Dez 2010, 13:59
Über ein Hier im Forum suchenMessageOnlyWindow?
(oder einfach über eine unsichtbare Form)

PS: Nicht vergessen eine Nachrichtenschleife einzubauen, damit diese Nachrichten auch verarbeitet werden können.
$2B or not $2B
  Mit Zitat antworten Zitat
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Auf Herunterfahren reagieren [w/ Forms]

  Alt 11. Dez 2010, 23:38
Gut! Dankeschön!
Ich werde mir das mal anschauen
Developer since age 14
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Auf Herunterfahren reagieren [w/ Forms]

  Alt 12. Dez 2010, 00:33
Hmmm, eigentlich hatte ich irgendwann mal was zu diesen MessageOnlyWindows geschrieben, aber die Forensuche scheint das wohl nicht mehr zu finden.

Also entweder du nimmst ein TForm, das NonVCL-Equivalent über MSDN-Library durchsuchenCreateWindow, womit du dir ein unsichtbares Hauptfenster (MessageWindow) erstellst.

Oder eben den offiziellen Weg für ein MessageOnlyWindow (irgendwo im MSDN sollte sich ein Artikel dazu finden lassen).
> siehe nachfolgenden Code, aber ohne das SetWindowLong
In der Nachrichtenschleife dann einfach auf das Handle der Form reagieren.

Oder du erstellst dir eine neue WindowClass, registrierst sie, mit einem eigenem StandardWindowProc und reagierst dann in dieser Prozedur.
> statt Message/Static dann deine eigene Klasse nehmen

Oder eben über MakeObjectInstance eine Methode ala Hier im Forum suchenTWndMethod beim Fenster registrieren und darüber auf die Messages reagieren.
Delphi-Quellcode:
VI.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
If GetVersionEx(VI) and (VI.dwMajorVersion >= 5) Then
  S := 'MessageElse S := 'STATIC';
FHandle := CreateWindowEx(WS_EX_TOOLWINDOW, PChar(S), nil,
  WS_POPUP, 0, 0, 0, 0, 0, 0, HInstance, nil);
SetWindowLong(FHandle, GWL_WNDPROC, Integer(MakeObjectInstance(YourWndMethod)));

In allen Fällen mußt du aber eine MessageLoop/Nachrichtenschleife verwenden. (in einem VCL-Programm steckt diese Schleife in Application.Run drin und ohne diese mußt du eben deine eigene Schleife bauen) ... dazu sollten sich aber Massig Infos und Beispiele in der DP anfinden.
z.B. http://www.delphipraxis.net/115456-e...tml#post789753
oder siehe DelayDelay

[add] OK, einwas war doch noch zu finden.
http://www.delphipraxis.net/113322-u...tml#post773692
$2B or not $2B

Geändert von himitsu (12. Dez 2010 um 00:37 Uhr)
  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 13:40 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