Selbstzerstörung
-
Ist es möglich das ein Programm sich selbst löscht?
Wenn ja wie?
-
Klar geht das. Ein wenig mehr Infos dürfen es dann aber doch sein... Und das Forum hast du so was von passend gewählt...

-
Ich meine das mein Programm wenn ich einen Button\eine Taste betätige sich beendet und löscht
-
ich kanns mir höchstens so vorstellen das du irgendwie ne batch datei erstellst die dann die exe löscht oder so, ...
aber dann wär die batch wieder übrig,

-
Stimmt ich habe mir gedacht, das ich das löschen irgendwie in die Registrierung schreibe und das die Datei dann er beim Neustart gelöscht wird.
Aber leider weiß ich nicht wie genau das gehen müsste
-
Also du könntest wie schon geschrieben eine Batch datei machen und diese dann ausführen in der folgendes steht:
echo off echo ************************************** echo *Batchdatei zum löschen von TEST.exe * echo ************************************** DEL TEST.exe DEL loechen.batDie Batch datei nennst du loeschen.bat.
Solle so funzen.
Frag mich jetzt bitte nicht, wie man mit C++ ne Batch Datei erstellt, denn das weiß ich nich. (Bin ja noch neu in C++)MfG: reepo2k
-
Danke ich denke das müsste klappen!
mfg
bambergt
-
Du musst in der Batch noch darauf warten, dass die EXE auch gelöscht wird. Wenn sie noch läuft, kann sie nicht gelöscht werden. also:
echo off echo ************************************** echo *Batchdatei zum löschen von TEST.exe * echo ************************************** delete DEL TEST.exe if exists TEST.exe goto delete DEL loechen.batoder so.
-
OK auch dir Danke
-
Es gibt da noch die API-Funkton CopyFileEx (oder war's DeleteFileEx).
Durch ein bestimmte Parameter wird die Datei erst beim nächsten Neustart kopiert bzw. gelöscht.
So kannste die .exe deines laufenden Programmes löschen und beim nächsten Start ist die dann auch wirklich weg.Für die genauen Parameter musste halt mal in der MSDN kruschen.
-
hier findet ihr alles was ihr braucht: http://www.catch22.net/tuts/selfdel.asp
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
In der WinAPI-FAQ steht dazu auch was:
FAQ: Wie kann sich ein Programm selbst löschen?
-
hehejo schrieb:
Es gibt da noch die API-Funkton CopyFileEx (oder war's DeleteFileEx).
Den Telefonjoker hast du noch. Es ist MoveFileEx.

-
reepo2k schrieb:
echo off echo ************************************** echo *Batchdatei zum löschen von TEST.exe * echo **************************************AFAIK: erste Zeile muss @ECHO OFF heißen.
-
Lars Hupel schrieb:
reepo2k schrieb:
echo off echo ************************************** echo *Batchdatei zum löschen von TEST.exe * echo **************************************AFAIK: erste Zeile muss @ECHO OFF heißen.
nein, muss sie nicht. das @ ist nur dazu da, dass das "echo off" nicht ausgegeben wird. Aber fuer die Funktion der Datei ist das sowas von wurscht.
Man kann sich aber auch mehr Gedanken ueber die Syntax machen als noetig.
der Guenther
-
Ich hätte da noch eine Idee. Unter Windows gibt es ja sowas wie die Autoexec.bat. Wenn du dort den Befehl zum löschen des Programms vom Programm selber reinschreiben lässt, müsste der das Programm nach dem Neustart löschen.
Wenn das klappt, sagt mir bitte bescheid.
-
Soweit ich weiss, wird die Autoexec.bat ab 2000/XP nicht mehr ausgefuehrt. Die ist glaube ich nur noch so da. Bin mir aber nicht sicher.
Aber, selbst wenn, dann gaebe es keine Routine, die die Autoexec.bat hinterher wieder bereinigt. Das klappt zwar, aber dann kommen bei jedem Neustart Fehlermeldungen "Befehl oder Dateiname nicht gefunden."
Der Guenther