![]() |
eigene Exe löschen??
Kann man irgendwie die eigene Exedatei löschen?
wenn ich z.B. auf den schließenbutton klicke, dann beendet sich die datei und wird anschließend gelöscht! geht das? ich habe mir gedacht, man könnte die cmd.exe ausführen, der sagen, dass sie 2 sek. warten soll und danach die datei löschen soll, derweil wird dann das prog beendet. aber wie kann man der cmd sagen, dass sie warten soll? |
Re: eigene Exe löschen??
:hi:
Das hilft dir zwar nicht, aber weshalb willst Du deine Exe löschen? Ich seh da denn Sinn zur Zeit noch nicht :wink: |
Re: eigene Exe löschen??
ich leihe meinem kollegen ein programm, das aber nur bis zu einem bestimmten datum gelten soll. wenn das prog nach dem Datum ausgeführt wird, soll es sich selbst löschen
|
Re: eigene Exe löschen??
|
Re: eigene Exe löschen??
:hi:
![]() Hoffe, das funktioniert analog in Delphi |
Re: eigene Exe löschen??
danke! ich werds mal durchprobieren!
|
Re: eigene Exe löschen??
|
Re: eigene Exe löschen??
Moin Zusammen,
ich würde in der Batchdatei allerdings in der letzten Zeile
Code:
schreiben.
del %0
Ist kürzer, verstehen die meisten nicht, und löscht auch die Datei in der es aufgerufen wird. ;-) |
Re: eigene Exe löschen??
Hier ein Link:
http://assarbad.net/stuff/!export/delphi_deleteself.txt
Code:
{
[color=red]This code is only compatible with Windows 95, 98, Me and NT 4, 2000![/color] No XP support, yet. If I find out how this could work, I'll update the code. If your code will definitely not run on XP, you may undefine the compiler variable XPVERSIONCHECK which will strip the version checking off the code :) Note, this version will only work, as long as the functions are imported through the import table. This is true for any Win32 app and Kernel32.dll! Anyway, if you introduce symbol names, that conflict with the function names, this code is likely to break! I am not sure wether this is possible at all for kernel32 functions, because kernel32.dll is implicitly bound, but maybe it is ... so be warned! Also, this code is only compatible with the i386 processor architecture. This becomes evident as soon as you recognise the assembler parts in the code. This code is PUBLIC DOMAIN!!! } |
Re: eigene Exe löschen??
Wusste gar nicht das das auch in Batchdateien geht.
Jetzt wird mir auch klar warum die Parameter bei 1 beginnen. |
Re: eigene Exe löschen??
Uebrigens, die wohl eleganteste Methode auf einem beliebigen System (da zB CMD.EXE gesperrt sein kann) ist, dass man eine DLL mit dem Flag "delete on close" gesetzt erstellt und dass diese DLL das eigentliche Hauptmodul (i.e. die EXE) loescht. Wird die EXE dann entladen, entlaedt sich auch die DLL und wird, sobald alle Handles zu ihr (der DLL) geschlossen sind, auch geloescht. Das funzt dann auch auf XP.
@Christian: wieso verstehen die meisten sowas nicht? DEL %0 gabs bereits unter DOS. Und seit NT kann man sogar komplexe Parser als NT Shell Script schreiben. Und wer da noch sagt, dass Linux besser sei, den nenne ich einfach mal <trollmode>DOOF :-P</trollmode> Denn demjenigen kann man nur sagen, dass die DOS Kommandozeile von Unix abstammt und somit ein Urahne des NT Shell Scripting von Unix abstammt. Ausserdem kann man ja auch Rexx oder KiXtart oder Perl oder andere Scriptsprachen unter NT benutzen, die dann ebenso maechtig sind wie die jeweilige Version unter Linux. Unterschaetzen sollte man zumindest auf NT nicht was die Kommandozeile so bietet |
Re: eigene Exe löschen??
Moin Himitsu,
Zitat:
@Assarbad: Damit waren normale Anwender gemeint. Wenn da im Klartext der Pfad zur Datei steht ist das wohl deutlicher verständlich. |
Re: eigene Exe löschen??
@Christian: Wahrscheinlich haste doch recht. Grade wieder ein paar schöne Erlebnisse mit LUsern gehabt und bin entsprechend empfänglich für jegliches Schlechtreden von "normalen Anwendern" ;)
|
Re: eigene Exe löschen??
warum überprüfst du beim start nicht einfach das datum und wenn das nicht stimmt einfach "halt"?? das mit dem löschen bringts doch nicht, meistens hat man eh noch ne kopie rumliegen. Beim Beenden irgendwo in die registry noch das datum mit zeit schreiben und beim start überprüfen ob das datum in der registry älter ist als das aktuelle. Somit wird verhindert das leute das datum umstellen und weitertesten.
|
Re: eigene Exe löschen??
@SirThornberry: Was denkst du, wielange dauert es, bis jemand den Ort in der Registry gefunden hat und dort das Datum einfach wieder zurückstellt?
Ich sags dir: Solange, wie er braucht, um auf die Idee zukommen, dort zu suchen. |
Re: eigene Exe löschen??
Allerdings muss ich sagen, dass die Registry da so gut ist wie jede andere Methode. Wenn man nicht grad nen Dongle nimmt (und selbst den kannste per Treiber 'emulieren') oder TCPA-Unterstützer ist, dann gibt es sowieso keine sichere Methode.
Wenn es nur auf NT läuft, würde ich allerdings die Daten in einen ADS (Alternative Data Stream) schreiben und dann entsprechend dort auch wieder auslesen ;) ... darauf kommt zumindest so schnell keiner. Um zu veranschaulichen wovon ich spreche, sucht doch mal nach ![]() |
Re: eigene Exe löschen??
das mit der registry war nur nen vorschlag, gibt noch genügend andere orte wo man das speichern kann. Löschen ist auch nicht sicherer. Da kann ich mir auch das gelöschte wieder zurückholen...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz