Laden...

Programm beenden erzwingen

Erstellt von belbono vor 17 Jahren Letzter Beitrag vor 17 Jahren 10.036 Views
B
belbono Themenstarter:in
25 Beiträge seit 2006
vor 17 Jahren
Programm beenden erzwingen

Hallo,

bei Programmstart prüfe ich im Konstruktor meiner GUI die Verbindung zur Datenbank. Wenn diese fehlschlägt will ich das Programm sofort beenden.

Leider hab ich das bisher irgendwie nicht hinbekommen und ich irgendwie auch im Netz nichts in der Richtung "Programmende erzwingen"

this.close() funktioniert seltsamerweise nicht .... als direkter Funktionsaufruf per Button aus der GUI heraus allerdings schon...

Ich glaub ich hab da etwas noch nicht so ganz verstanden...

Im Moment setzt der Konstruktor lediglisch seine Arbeit fort...was er aber in dem Fall nicht soll.

Hat jemand eine Idee ?

Gruß,
belbono

3.971 Beiträge seit 2006
vor 17 Jahren

Im Konstruktor kannst du nicht this.Close() einer Form aufrufen. Frachte alles in Form_Load, dann sollte es gehen oder probier mal Application.Exit

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

B
belbono Themenstarter:in
25 Beiträge seit 2006
vor 17 Jahren

Application.Exit() hatte ich vor einer weile auch schon mal - ging auch nicht

Wann genau wird denn GUI_Load() aufgerufen ?

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo belbono,

siehe Form.Load in der SDK-/MSDN-Doku.

herbivore

4.221 Beiträge seit 2005
vor 17 Jahren

Original von kleines_eichhoernchen
oder probier mal Application.Exit

Also mit dem kleinen Holzhämmerchen.... Es gibt da auch noch den grossen Holzhammer ... Environment.Exit

Aber nicht dass jetzt jemand daraus schliesst ich fände es eine gute Idee Anwendungen mit dem Hammer zu schliessen. 8)

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

S
8.746 Beiträge seit 2005
vor 17 Jahren

Im Konstruktor hat so ein Code nix zu suchen. Wie Herbi schon schrieb, solltest du diesen Code z.B. in Form.Load() unterbringen. Wenn du dann Close() absetzt, geht das Fenster zu und die Anwendung beendet.

Etwas "erzwingen" bedeutet immer: Ich habs auf regulären Weg nicht hinbekommen. Und wer will schon pfuschen!?

3.971 Beiträge seit 2006
vor 17 Jahren

Original von Programmierhans

Original von kleines_eichhoernchen
oder probier mal Application.Exit

Also mit dem kleinen Holzhämmerchen.... Es gibt da auch noch den grossen Holzhammer ... Environment.Exit

Aber nicht dass jetzt jemand daraus schliesst ich fände es eine gute Idee Anwendungen mit dem Hammer zu schliessen. 8)

Und ich schätze der ganz ganz große Hammer, ist der Kopf am Rechner mit der Aufschrift "R.E.S.E.T.".

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

4.221 Beiträge seit 2005
vor 17 Jahren

lol

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

B
belbono Themenstarter:in
25 Beiträge seit 2006
vor 17 Jahren

hehe - gibts dafür eigentlich auch eine Funktion in .NET ? Windows muss ja welche kennen, wenn ich mich so erinner was hier manchmal so passiert...

Gut, aber der Riesenhammer wäre in dem Fall auch ne gültige Alternative...

Weil das Prog hier ohne die Datenbank nichts kann .... und da macht nur noch ein beenden Sinn.

Ich habe das jetzt so gelöst, dass ich die bool'sche Variable global in der GUI hab und sie im Konstruktor setze.

In GUI_Load frag ich sie ab und rufe dann ggf. this.Close() auf.
Funktioniert genau so wie ich es mir vorgestellt habe!

Danke für die Infos!!

belbono

D
386 Beiträge seit 2007
vor 17 Jahren

Original von Programmierhans

Original von kleines_eichhoernchen
oder probier mal Application.Exit

Also mit dem kleinen Holzhämmerchen.... Es gibt da auch noch den grossen Holzhammer ... Environment.Exit

Aber nicht dass jetzt jemand daraus schliesst ich fände es eine gute Idee Anwendungen mit dem Hammer zu schliessen. 8)

Environment.Exit ist was fuer Bluemchenkinder.
Environment.FailFast() ist das richtige Werkzeug..

Pound for pound, plutonium is about as toxic as caffeine when eaten.

S
8.746 Beiträge seit 2005
vor 17 Jahren

Echte Programmierer benutzen Process.Kill(). 😉

4.221 Beiträge seit 2005
vor 17 Jahren

Und Götter verwenden ExitWindows 8)

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

3.971 Beiträge seit 2006
vor 17 Jahren

ich weiß, gehört hier nicht ganz zum Thema, aber

Gibt es eigentlich im Dot.Net eine Möglichkeit Windows heruntezufahren, Standby, Ruhezustand, Neustart usw. ohne externe DLLImporte wie ExitWindows(Ex) zu benutzen? WMI vllt.?

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

4.221 Beiträge seit 2005
vor 17 Jahren

Shutdown auf ne Shell rausstellen... aber das hast Du sicher nicht gemeint 🙂

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

3.971 Beiträge seit 2006
vor 17 Jahren

Wohl eher nicht...🙂

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...