Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ich möchte mit einem Batchbefehl die eigene Datei löschen. Ich weiß zwar, wie man Dateien löschen kann, aber während der Laufzeit kann man ja schlecht die eigene .exe löschen ^^.
naja pls help me ma
mfg jiox
Du lässt von deinem Programm eine Bat-Datei schreiben, die solange versucht deine exe zu löschen, bis es geht - und sich anschließend selber löscht (bei BATs gehts ja)
hier der Inhalt der Bat, die dein Programm schreiben muss:
Code:
@echo off
:Marke
Del "c:\SelfDestruct.exe"
If Exist "c:\SelfDestruct.exe" Goto Marke
Del "c:\Kill.bat"
Sobald sich deine Exe zerstören will:
1) Bat schreiben (natürlich mit angepassten pfaden)
2) Bat ausführen (>Bat versucht zu löschen, geht aber nicht - aber läuft weiter)
3) Programm beenden
4) Bat kann löschen, löscht exe und dannach sich selbst
Ich hab keine Ahnung, wie das in C++ geht - ich kann sowas nur in VB.
Aber wozu willst du die verstecken - das geschieht alle schneller als eine sekunde - so schnell ist der explorer garnicht aktualisiert, dass die bat datei überhaupt angezeigt wird.
ich glaube eher nicht das man eine Batch Datei verstecken kann. In C++ und sicher auch VB kann man die Taskbar anweisen keinen Eintrag anzuzeigen. Analog zum Taskmanager, siehe Menüpunkt "ausblenden wenn minimiert", sowie das eigene Fenster unsichtbar machen.
in VB lässt sich das Batch-Programm komplett versteckt (d.h. das einzige was von dem Batch zu sehen ist, ist ein ganz kurzer Eintrag unter Taskmanager-Prozesse) folgendermaßen starten:
Shell("Batchdatei.bat", vbHidden)
...wie es in C++ geht, weiß ich net - aber geht bestimmt mit nem API aufruf, etc.
Das geht in C++ auch mit ShellExecute. Da gibt es den Parameter SW_HIDE bei nShowCmd.
Muss aber eben selber programmiert werden.
Dann würde ich aber keine Batchdatei mehr nehmen sondern selber was programmieren.
Wenn Dein Programm gelöscht werden soll, wird zuerst mit ShellExecute ein zweites Programm gestartet das unsichtbar ist.
Danach beendet sich das zu löschende Programm.
Dann kann das soeben gestartete Programm das jetzt nicht mehr laufende Programm problemlos löschen.
Die Frage ist halt warum er das ganze überhaupt machen will und ob es um ein komplettes Aufräumen geht.
Eine Deinstallation macht man eigentlich über die Systemsteuerung.
Oder soll das ein Kopierschutz werden?
Die Bat Datei hat sicher den Vorteil das man sie einfach zur Laufzeit erzeugen kann.
Aber man sieht es eben auch, das da was gemacht wird.
Aber man kann ja beide Ansätze mischen.
Die Bat Datei wird einfach mit Shellexecute und Parameter SW_HIDE gestartet.
Dann geht beides.
Danke! Das hat mir geholfen!
Ich wollte das Programm eigentlich nur zur Übung machen(Ich habe vor 1 Woche mit C++ angefangen). Aber ich denke, dass ich noch viel zu lernen habe ^^.
MfG
J!0X