[C#] Prozess1 soll einen neuen Prozess2 erstellen

davidklok

Grünschnabel
Hallo,

wie könnte ich es realisieren, dass mein C# - Programm (nennen wir es Proz 1) einen neuen Prozess (Proz 2) erstellt. Proz 2 soll laufen, auch wenn Proz1 mit Apllication.Exit beendet worden ist.
Nach Möglichkeit sollte der Proz2 sich nur im Spiecher befinden. Proz2 irgendwie mittels ICodeCompiler zu erstellen und per Process.Start(proz2.exe) zu starten wäre nur eine Notlösung, da proz2 nicht permanent erstellt werden sollte.

Wie könnte man das lösen oder wo könnte das dokumentiert sein?

MfG
davidklok


PS vielleicht sollte ich erklären, was ich eigentlich will: Wie kann eine ausführbare Datei sich selbst löschen?
 
Zuletzt bearbeitet:
Bin mir nicht sicher, aber funktioniert es nicht, wenn du einfach einen zweiten Thread startest?
In diesem Thread wartest du kurz, bis sich das Hauptprogramm beendet hat und dann löscht und die Datei. Danach soll sich der Prozess beenden...

Bin mir wie gesagt nicht sicher, aber sollte eigentlich funktionieren.
 
Das habe ich auch schon probiert. Ich habe testweise in einem Thread eine MessageBox aufgehen lassen und nach dem Start des Thread ein Application.Exit() machen lassen. Danach war die MessageBox jedenfalls auch weg.
Ist ja irgendwie auch klar, denn ein Thread muss doch einen Vaterprozess haben, damit es kein Zombie wird, falls ich mich recht erinnere - kann mich auch irren.
 
Meiner Erfahrung nach läuft ein Thread weiter... selbst wenn sich das Hauptprogramm beendet. Werde es aber mal probieren und dir dann bescheid geben.

//edit: Okay hast recht, funktioniert nicht. Sorry für die Falschinformation.
 
Zuletzt bearbeitet:
Guten Morgen!

Also, man braucht unbedingt 2 Programme.
Das 1 Programm startet das zweite und beendet sich.
Das 2 Programm löscht das erste und beendet sich.

Anderst is es meines jetztigen Wissens nach nicht möglich.
 
Hallo,

besten Dank erstmal für deine Hilfe!

Ich habe gesten noch probiert eine MessageBox im Thread aufgehen zu lassen und das Hauptpogramm mit Exit() zu beenden. Die MessageBox blieb dann tatsächlich noch bestehen, aber der Prozess war auch nicht beendet.

Die Lösung mit den zwei Programmen wollte ich eigentlich so nicht realisieren. Vielleicht das zweite Programm zur Laufzeit mittels ICodeCopiler erstellen und nach C:\Temp schieben. da stört es ja auch nicht so unbedingt.

Aber trotzdem muss es eine Lösung geben, denn eine beliebige uninstall.exe erstellt auch einen temporären Prozess XYZ.tmp, auch im Task-Manager zu sehen, und kann sich sozusagen selbst löschen.

Nur wie machen die das ... ?

Also ich wünsch euch allen, heute einen verlustfreien Nachmittag
 
Zurück