Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Programm nach Beendung löschen
XXL
myCSharp.de - Member



Dabei seit:
Beiträge: 95

Themenstarter:

Programm nach Beendung löschen

beantworten | zitieren | melden

Hallo,
ich habe eine .exe (im netz liegend) die bei aufruf einer batchdatei nach c:\temp (lokal)kopiert wird.
dann soll die .exe automatisch gestartet werden.

wenn das programm beendet wird, soll es es auf dem lokalen rechner wieder gelöscht werden...

wie realisiert man das am besten?

danke

G.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo XXL,

ein anderes Programm starten, das wartet bis die kopierte exe beendet ist und sie dann löscht. Hat Ähnlichkeiten mit Sicherer Restart einer Console-App

herbivore
private Nachricht | Beiträge des Benutzers
Robar
myCSharp.de - Member



Dabei seit:
Beiträge: 22
Herkunft: OÖ

beantworten | zitieren | melden

Mit File.Delete("Pfad");

mfg robar
private Nachricht | Beiträge des Benutzers
onlinegurke
myCSharp.de - Member



Dabei seit:
Beiträge: 779
Herkunft: Dresdner in Karlsruhe

beantworten | zitieren | melden

Das ein Programm sich selbst löscht geht nicht. Was aber gehen würde, ist, dass dein Programm ein neues Programm generiert (und zwar komplett im Arbeitsspeicher. Das beim Beenden aufruft und das neu erschaffene Programm das Ursprüngliche Prgramm löscht. Das ist aber äußerst kompliziert, zumal das neu erstellte Prgramm auch erstmal warten muss, bis sich das Ursprungsprogramm beendet hat.
private Nachricht | Beiträge des Benutzers
MasterOfDesaster
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Erlangen

beantworten | zitieren | melden

Rein aus Interesse wie generiert man ein Programm in den Arbeitsspeicher und startet es??
Wi eman zu dem Programm kommt wäre vlt. gar nicht so schwer. Man schreibt es in seiner Ide -> kompiliert -> öffnet es im Hexeditor -> kopiert -> und jetzt muss man den Code in den Arbeitsspeicher kriegen -> also ne Variable erstmal z.B. BinaryStream, oder?

Aber wie jetzt starten?????

ich finde das Thema interessant, auch wenn ich es wahrscheinlich nicht so schnell gebrauchen werde :-D

mfg MasterOfDesaster


PS: Das ganze klingt nach einem bösartigen Programm
private Nachricht | Beiträge des Benutzers
nils
myCSharp.de - Experte



Dabei seit:
Beiträge: 750
Herkunft: Nähe von Kassel

beantworten | zitieren | melden

Zitat
Original von XXL
Hallo,
ich habe eine .exe (im netz liegend) die bei aufruf einer batchdatei nach c:\temp (lokal)kopiert wird.
dann soll die .exe automatisch gestartet werden.

wenn das programm beendet wird, soll es es auf dem lokalen rechner wieder gelöscht werden...

wie realisiert man das am besten?

danke

G.

die batch-datei sollte das doch können, oder nicht ?
?( wer suchet, der findet auch! :]
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3.764
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Wenn man eine Exe-Datei umbenennt kann man sie auch löschen, wenn sie gerade in Benutzung ist.

Ob sich das Programm dann selbst löschen kann müsste man mal testen.

Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
mitti
myCSharp.de - Member



Dabei seit:
Beiträge: 253
Herkunft: Österreich

beantworten | zitieren | melden

Zitat
Original von BerndFfm
Wenn man eine Exe-Datei umbenennt kann man sie auch löschen, wenn sie gerade in Benutzung ist.

Ob sich das Programm dann selbst löschen kann müsste man mal testen.

Grüße Bernd

Du kannst aber die exe-Datei nicht umbennen wenn sie in Verwendung ist.

Patrick

EDIT:

Sry, das geht doch...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von mitti am .
private Nachricht | Beiträge des Benutzers
nin
myCSharp.de - Member

Avatar #avatar-2166.gif


Dabei seit:
Beiträge: 738
Herkunft: graz,AT

beantworten | zitieren | melden

@BerndFfm:
hi,
einfach File.Delete() und den Namen der eigenen *.exe angeben geht nicht. UnauthorizedAccessException. Wär ja auch irgendwie komisch...
private Nachricht | Beiträge des Benutzers
onlinegurke
myCSharp.de - Member



Dabei seit:
Beiträge: 779
Herkunft: Dresdner in Karlsruhe

beantworten | zitieren | melden

Zitat
Rein aus Interesse wie generiert man ein Programm in den Arbeitsspeicher und startet es??

kommt darauf an, wie du das Programm erstellst, .NET liefert da ja mehrere Mittelchen, bei der ersten Variante (langsam, aber eindeutig objektorientiert) mit CodeDom stellt du einfach die CompilerSettings um, bei der zweiten Variante (einfach, aber noch langsamer) mit literalem Code genauso (basiert intern ja auf CodeDom, glaub ich zumindest sowas mal gehört zu haben), und bei der dritten Variante (schnell, aber sehr kompliziert) mit Reflection.Emit gibts da auch ne Option im ILGenerator dafür...
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4.506
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

Hallo zusammen,

eine Umbenennung der aktiven EXE geht definitiv. Ob danach das Löschen der umbenannten Datei geht, das müsste ausprobiert werden, und würde mich dann auch interessieren ob das geht ;-)

Gruß
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
private Nachricht | Beiträge des Benutzers
AWE
myCSharp.de - Member



Dabei seit:
Beiträge: 29

beantworten | zitieren | melden

Nein, das geht nicht.
Ich habe es gerade ausprobiert.
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1.529
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Wenn die exe sowieso über eine Batch gestartet wird, kann sie doch genauso gut auch von der Batch wieder gelöscht werden. Mit
start "" /WAIT <<programm>> <<parameter>>
kann man die Batch bis zum Ende des Programms anhalten.
private Nachricht | Beiträge des Benutzers
LonelyPixel
myCSharp.de - Member



Dabei seit:
Beiträge: 333
Herkunft: Erlangen

beantworten | zitieren | melden

Wenn die Batch-Datei auf das Beenden des Programms wartet, hast du halt die ganze Zeit über ein Konsolenfenster offen. Könnte u.U. störend sein.
private Nachricht | Beiträge des Benutzers