Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm knallhart beenden (https://www.delphipraxis.net/29077-programm-knallhart-beenden.html)

kingflo 3. Sep 2004 17:28


Programm knallhart beenden
 
Hallo kann mir jemand helfen?

Ich brauche etwas damit ich mein Programm beenden kann.

Und zwar soll das Programm ohne darauf zu achten ob canclose true ist oder nicht und ohne Fehlermeldungen auszugeben beendet werden

Nothine 3. Sep 2004 17:30

Re: Programm knallhart beenden
 
Delphi-Quellcode:
Application.Terminate;

Dax 3. Sep 2004 17:32

Re: Programm knallhart beenden
 
Oder API:

Delphi-Quellcode:
TerminateProcess(GetCurrentProcess), 0);

kingflo 3. Sep 2004 17:35

Re: Programm knallhart beenden
 
geht nicht zugriffsverletzung bei adresse 00475682 in modul app.exe Lesen von adresse 029282C

Assarbad 3. Sep 2004 17:35

Re: Programm knallhart beenden
 
Alternativ

Delphi-Quellcode:
ExitProcess(dwExitCode);
oder

Delphi-Quellcode:
TerminateProcess(OpenProcess(
                             PROCESS_TERMINATE,
                             False,
                             GetCurrentProcessId()
                             ),
                 dwExitCode);
oder

Delphi-Quellcode:
TerminateProcess(
                 GetCurrentProcess(),
                 dwExitCode);

in nonVCL-Umgebungen

Luckie 3. Sep 2004 17:35

Re: Programm knallhart beenden
 
Zitat:

Zitat von kingflo
Und zwar soll das Programm ohne darauf zu achten ob canclose true ist oder nicht und ohne Fehlermeldungen auszugeben beendet werden

Macht das irgend einen Sinn? :gruebel: warum hast du denn was in Delphi-Referenz durchsuchenOnCloseQuery implementiert, wenn du es doch umgehen willst?

kingflo 3. Sep 2004 17:38

Re: Programm knallhart beenden
 
Zitat:

Zitat von Dax
Oder API:

Delphi-Quellcode:
TerminateProcess(GetCurrentProcess), 0);

da bekomme ich einen Compiler fehler nicht wirklich genügend Parameter

Dax 3. Sep 2004 17:40

Re: Programm knallhart beenden
 
Kann nicht sein!

Laut WinSDK nehmen TerminateProcess 2 Parameter und GetCurrentProcess gar keinen!

Assarbad 3. Sep 2004 17:43

Re: Programm knallhart beenden
 
Zitat:

Zitat von kingflo
geht nicht zugriffsverletzung bei adresse 00475682 in modul app.exe Lesen von adresse 029282C

Zu welchem der obigen Vorschläge war das?

kingflo 3. Sep 2004 17:44

Re: Programm knallhart beenden
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von kingflo
Und zwar soll das Programm ohne darauf zu achten ob canclose true ist oder nicht und ohne Fehlermeldungen auszugeben beendet werden

Macht das irgend einen Sinn? :gruebel: warum hast du denn was in Delphi-Referenz durchsuchenOnCloseQuery implementiert, wenn du es doch umgehen willst?

Weil das Programm im query guckt ob datein gespeichetrt wurden oder nicht und weil es fragt ob man beenden möchte oder nicht.
Aber es gibt eine Stelle da muss es sofort beendet werden und zwar bei der Update installation und bei der Installation von add ons

Assarbad 3. Sep 2004 17:46

Re: Programm knallhart beenden
 
Zitat:

Zitat von kingflo
Zitat:

Zitat von Dax
Oder API:

Delphi-Quellcode:
TerminateProcess(GetCurrentProcess), 0);

da bekomme ich einen Compiler fehler nicht wirklich genügend Parameter

Versuch mal "Windows." vor TerminateProcess() zu schreiben. Also explizite Angabe der Unit. Kann sein, daß eine andere Funktion die API-Funktion überlagert.

alcaeus 3. Sep 2004 17:47

Re: Programm knallhart beenden
 
Hi Florian,

Zitat:

Zitat von kingflo
Zitat:

Zitat von Dax
Oder API:

Delphi-Quellcode:
TerminateProcess(GetCurrentProcess), 0);

da bekomme ich einen Compiler fehler nicht wirklich genügend Parameter

Ist klar, mach einfach die Klammer hinter GetCurrentProcess weg..

Greetz
alcaeus

kingflo 3. Sep 2004 17:48

Re: Programm knallhart beenden
 
Danke es geht mit

Code:
TerminateProcess(OpenProcess(
                             PROCESS_TERMINATE,
                             False,
                             GetCurrentProcessId()
                             ),
                 dwExitCode);
danke

Assarbad 3. Sep 2004 17:48

Re: Programm knallhart beenden
 
Zitat:

Zitat von alcaeus
Ist klar, mach einfach die Klammer hinter GetCurrentProcess weg..

*g* alter Streber :mrgreen: ... hatte das auch schon gesehen aber nicht gedacht, daß man das nicht selbst korrigieren würde. Manche Leute programmieren eben per C&P :mrgreen: :zwinker:

_master_ 3. Sep 2004 17:50

Re: Programm knallhart beenden
 
Delphi-Quellcode:
//so gehts
TerminateProcess(GetCurrentProcess, 0);

kingflo 3. Sep 2004 17:51

Re: Programm knallhart beenden
 
Hey alcaeus

Stimmt so gehts auch

Danke an euch alles mega nett dass Ihr so schnell geantwortet habt.

Also

HERZLICHEN DANK :-D

Luckie 3. Sep 2004 17:53

Re: Programm knallhart beenden
 
Zitat:

Zitat von kingflo
Weil das Programm im query guckt ob datein gespeichetrt wurden oder nicht und weil es fragt ob man beenden möchte oder nicht.
Aber es gibt eine Stelle da muss es sofort beendet werden und zwar bei der Update installation und bei der Installation von add ons

Wenn du da so zu brachialen Methoden greifen musst, dann hast du was falsche gemacht im Konzept deines Programmes.

kingflo 3. Sep 2004 17:53

Re: Programm knallhart beenden
 
Zitat:

Zitat von Assarbad
Zitat:

Zitat von alcaeus
Ist klar, mach einfach die Klammer hinter GetCurrentProcess weg..

*g* alter Streber :mrgreen: ... hatte das auch schon gesehen aber nicht gedacht, daß man das nicht selbst korrigieren würde. Manche Leute programmieren eben per C&P :mrgreen: :zwinker:

Stimmt nicht ganz aber in dem Fall gehts mit Copy und Paste am scnellsten und mir ist es eben nicht aufgefallen :oops:

kann ja mal passieren oder

axelf98 3. Sep 2004 17:54

Re: Programm knallhart beenden
 
gehts nicht auch mit ABORT?

Nothine 3. Sep 2004 17:54

Re: Programm knallhart beenden
 
Zitat:

Zitat von kingflo
Weil das Programm im query guckt ob datein gespeichetrt wurden oder nicht und weil es fragt ob man beenden möchte oder nicht.
Aber es gibt eine Stelle da muss es sofort beendet werden und zwar bei der Update installation und bei der Installation von add ons

wie wärs mit ner booleschen Variable (e.g. Updating) ? Würd den Aufwand doch etwas verringern :roll:

alcaeus 3. Sep 2004 17:57

Re: Programm knallhart beenden
 
Hi Florian!

Zitat:

Zitat von Nothine
wie wärs mit ner booleschen Variable (e.g. Updating) ? Würd den Aufwand doch etwas verringern :roll:

Den Tipp kann ich dir nur empfehlen, es gehört nämlich nicht zur "feinen englischen Art", das eigene Programm abzuschießen. ;)
Da empfehle ich wirklich nur das Programmkonzept zu überdenken, wie Luckie es bereits erwähnt hat.

Greetz
alcaeus

[edit=Luckie]Quote-Tags korrigiert. Mfg, Luckie[/edit]

kingflo 3. Sep 2004 18:01

Re: Programm knallhart beenden
 
Zitat:

Zitat von Nothine
Zitat:

Zitat von kingflo
Weil das Programm im query guckt ob datein gespeichetrt wurden oder nicht und weil es fragt ob man beenden möchte oder nicht.
Aber es gibt eine Stelle da muss es sofort beendet werden und zwar bei der Update installation und bei der Installation von add ons

wie wärs mit ner booleschen Variable (e.g. Updating) ? Würd den Aufwand doch etwas verringern :roll:

Ich finde nicht das es ein großer aufwand das Programm zu beenden. Und ausserdem so wie ich das jetzt mache ist es für mich am einfachsten.
Und ich mache eigentlich immer alles so wie ich es am bessten kann.

Ausserdem war das mit der Boolischen Variabel auch meine erste idee aber da bekam ich immer diesen adressfehler und nach ca 1 std hatte ich keine lust mehr und hab euch gefragt

Nothine 3. Sep 2004 18:03

Re: Programm knallhart beenden
 
Zitat:

Zitat von kingflo
Ich finde nicht das es ein großer aufwand das Programm zu beenden. Und ausserdem so wie ich das jetzt mache ist es für mich am einfachsten.
Und ich mache eigentlich immer alles so wie ich es am bessten kann.

ich will ja nich gehässig werden, aber wenn es so einfach ist, warum existiert dieser thread dann überhaupt? :roll: (bitte nich hauen :stupid: :wink:)

Luckie 3. Sep 2004 18:05

Re: Programm knallhart beenden
 
Es geht nicht um den Aufwand, sondern ums saubere Programmieren.

Zitat:

Und ich mache eigentlich immer alles so wie ich es am bessten kann.
Dann hoffe ich, dass du zu mindest beim Auto fahren in dieser Hinsicht eine Ausnahme machst. :roll:

kingflo 3. Sep 2004 18:07

Re: Programm knallhart beenden
 
Zitat:

Zitat von Nothine
Zitat:

Zitat von kingflo
Ich finde nicht das es ein großer aufwand das Programm zu beenden. Und ausserdem so wie ich das jetzt mache ist es für mich am einfachsten.
Und ich mache eigentlich immer alles so wie ich es am bessten kann.

ich will ja nich gehässig werden, aber wenn es so einfach ist, warum existiert dieser thread dann überhaupt? :roll: (bitte nich hauen :stupid: :wink:)

Du hast ja recht so habe ich das auch nicht gemeint.
Ich meinte nur weil ich sonst immer den Adressfehler hatte und den echt nicht wegbekommen habe.
Denn zuerst habe ich es auch mit ner boolischen variable versucht aber der Fhler machte mich sauer und nach ca einer stunde dachte ich mir ich versuch das Prog abzuschießen

Nothine 3. Sep 2004 18:09

Re: Programm knallhart beenden
 
Zitat:

Zitat von kingflo
Ausserdem war das mit der Boolischen Variabel auch meine erste idee aber da bekam ich immer diesen adressfehler und nach ca 1 std hatte ich keine lust mehr und hab euch gefragt

da du das nachträglich editiert hast hab ich es zuerst nicht gesehen, vielleicht verrätst du uns einfach mal was für einen adress-fehler du meinst :?:

kingflo 3. Sep 2004 18:09

Re: Programm knallhart beenden
 
Zitat:

Zitat von Luckie
Es geht nicht um den Aufwand, sondern ums saubere Programmieren.

Zitat:

Und ich mache eigentlich immer alles so wie ich es am bessten kann.
Dann hoffe ich, dass du zu mindest beim Auto fahren in dieser Hinsicht eine Ausnahme machst. :roll:

:lol:
Naja ich denke schon da bin ich auch sehr vorsichtig weil in meinem Wagen echt viel arbeit stekt wenn der schrott ist geb ich mir die kugel.

kingflo 3. Sep 2004 18:11

Re: Programm knallhart beenden
 
Zitat:

Zitat von Nothine
Zitat:

Zitat von kingflo
Ausserdem war das mit der Boolischen Variabel auch meine erste idee aber da bekam ich immer diesen adressfehler und nach ca 1 std hatte ich keine lust mehr und hab euch gefragt

da du das nachträglich editiert hast hab ich es zuerst nicht gesehen, vielleicht verrätst du uns einfach mal was für einen adress-fehler du meinst :?:

Steht auf seite 1 der gleiche wie nach dem ersten vorschlag. Weiß echt nicht warum ist mir jetzt auch echt egal.

PS: Ich komm mit euch nicht mit ihr seid zu schnell will DSL haben hehe

Nothine 3. Sep 2004 18:17

Re: Programm knallhart beenden
 
[nur bissl OT]
also ich hab doppeltes DSL, das is schon ne feine sache :roll: :mrgreen:
[/nur bissl OT]

der adressfehler entstand doch aber beim abschießen deines programms, wir reden hier über ne boolesche variable die du einfach im onclose auswertest...

//Edit: okok, im OnCloseQuery bevor mich hier noch jemand haut :stupid:

Sprint 3. Sep 2004 18:20

Re: Programm knallhart beenden
 
Zitat:

Zitat von kingflo
aber da bekam ich immer diesen adressfehler und nach ca 1 std hatte ich keine lust mehr und hab euch gefragt

Naja, der Fehler liegt irgendwo im Code. Und wäre wohl besser wenn du den findest und dein Programm ordnungsgemäß beendest.

kingflo 3. Sep 2004 19:47

Re: Programm knallhart beenden
 
Tja doppeltes DSL gibts hier nicht nur DSL 768 (das erste)
Und das habe ich vorgestern auch schon bestellt hehe

Ich habe das im Query ja auch mit boolischen Variabeln gemacht. Muss das Prog aber in einem anderen Dialog beenden habe dann ne Funktion im Hauptdialog aufgerufen die die Variable umschaltet um das Prog zu schließen. Dabei ist es mir aber immer abgekackt. Und ich habe immoment echt keine Lust den Fehler zu suchen das das Prog extrem groß bzw umfangreich ist. Wenn das Programm soweit fertig ist begebe ich mich immer auf fehlersuche und verbessere alles was ich verbessern kann. Das mit beenden habe ich mir auch schon etsprechend kommentiert und werde das dann auch ändern nur jetzt noch nicht.
Und ohne unhöfflich zu wirken denke ich das ist auch meine sache und das kann jeder machen wie er möchte.
Aber versteht mich jetzt bitte nicht falsch ich bin euch für eure Tipps und für eure Hilfe wirklich sehr sehr dankbar. Und ich werde das an der stelle mit dem beenden auch noch ändern wenn ich zeit und lust dazu habe nur jetzt für die ersten Tests reicht es mir so. Ich hoffe ihr versteht mich wenigstens ein bisschen

Nothine 3. Sep 2004 20:21

Re: Programm knallhart beenden
 
klar kannst du machen was du möchtest, sie es einfach als gutgemeinte tipps für dein nächstes projekt :zwinker:

(oder glaubst du etwa ich arbeite immer OOP-konform? :mrgreen:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz