AGB  ·  Datenschutz  ·  Impressum  







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

wie wird ein programm beendet

Ein Thema von supermuckl · begonnen am 26. Nov 2004 · letzter Beitrag vom 26. Nov 2004
Antwort Antwort
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#1

wie wird ein programm beendet

  Alt 26. Nov 2004, 16:37
hab so eine ähnliche frage schon für kylix/linux gestellt aber bis jetzt noch keine antwort erhalten..

im prinzip (rein delphi technisch) müsste ich aber im windows bei einer consolenanwendung die gleichen fragen haben:

-> was passiert wenn ich eine consolenanwendung BEENDE ?
-> kann man sie überhaupt von aussen beenden ? oder wird die dadurch immer GEKILLT ?

-> welcher code wird noch abgearbeitet bzw ausgelassen wenn ich
-> BEENDE ?
-> KILLE ?

-> gibt es möglichkeiten ( ausser OnClose usw ) dies zu steuern ? -> weil in consolenanwendungen hab ich nicht von haus aus diese events

hoffe mir kann jemand genau erklären wie und was da vor sich geht, weil ich aufs beenden reagieren muss bzw es vernachlässigen kann ?

es geht halt um DBs die nicht fragmentiert werden dürfen -> kontrolliertes beenden einer consolenapplikation wünschenswert
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: wie wird ein programm beendet

  Alt 26. Nov 2004, 18:31
also nach längerer suche und informationen im bereich linux hab ich das auf windows übertragen können

und nachdem ich rausgefunden hab, das ich messages abfangen muss, und dies nur mit fenstern machen kann da nur die eine messageloop haben können, und ich aber eine consolenapplication (z.B.) habe, muss ich dort wohl einen thread mit einem unsichtbaren fenster mit der winAPI erstellen das dann die messages auffängt und damit dann global die "runterfahr" procedur für das proggi aktiviert wird

ich hoffe das tut so

messageloop-thread -> flag fürs beenden setzen(mit critical sections) beim beenden der applikation
|
|
|-> indy client thread (loop mit flagüberprüfung + critical section)
-> indy client thread (loop mit flagüberprüfung + critical section)

somit müssten sich die clients dann automatisch closen und die datenbank schliessen

dazu wird der messageloop thread wohl noch einen anderen starten der dann nach einer gewissen zeit alle threads forciert terminiert damit keiner hängen bleiben kann
-> ende

folgende threads sind unter anderem ziemlich hilfreich:
im 2. ist auch was mit console dabei fürs empfangen der close messages innerhalb der console usw -> mal anschauen
http://www.delphipraxis.net/internal...rogramm+wmquit
http://www.delphipraxis.net/internal...rogramm+wmquit
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: wie wird ein programm beendet

  Alt 26. Nov 2004, 19:20
Falls es dich noch interessiert. Hier steht, was nacheinander abläuft, wenn man ein Programm beendet (nicht killt).
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#4

Re: wie wird ein programm beendet

  Alt 26. Nov 2004, 19:26
sehr schön an die codelib hab ich jetzt auch nich gedacht..
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  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 14:24 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