Einzelnen Beitrag anzeigen

Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
318 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Externen Prozess starten und beenden

  Alt 2. Feb 2022, 11:20
CreateProces(..) oder ShellExecuteEx(..)

In jedem Fall ist etwas wie TerminateProcess(..) aber fast gleichzusetzen, als würde man sich von hinten an jemand heranschleichen und ihn erdolchen. Man gibt dem Prozess keine Möglichkeit sich selbst kontrolliert zu beenden.

Wenn es eine Hintergrund-Anwendung ist die gar nicht für den Benutzer sichtbar sein soll dann lassen die sich oft über einen Konsolenbefehl ("quit") oder die Tastenkombo [strg]+[c] kontrolliert beenden.

Aber vielleicht ist es ja auch gar schlimm das Programm mit Gewalt abzumurksen, das weiß nur der Entwickler selbst 😉
Das abmurksen an sich wäre nicht das Problem, aber der Prozess gehorcht nicht. Ich habe jetzt auch die beiden o.a. Lösungen getestet, starte den Prozess mit CreateProcess und erhalte ein hProcess zurück.
Aber Terminate will nicht.

Ein Control-C würde wohl auch funktionieren, muss ich mal googeln, wie ich das zum Prozess schicken kann.

Das zweite Problem ist aber auch noch ungelöst: Der Prozess soll erst beendet werden, wenn sich die Delphi-Komponenten verabschiedet haben.

P.S.: Günther: es handelt sich bei dem Prozess um meinen neuen OPC-UA-Wrapper, den ich nicht in C++ mit open62541, sondern in DotNet mit der dortigen UA-Bibliothek zusammengewurstelt habe.
  Mit Zitat antworten Zitat