Autor Beitrag
LonghornUser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Fr 06.08.04 18:05 
Hallo.

Ich habe bereits im forum gesucht, aber leider nix gefunden.
Wie macht man das möglichst ohne externe datei ?

hofe auf schnelle antworten.

ciao
mstuebner
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 132

Win2000, XP
D7
BeitragVerfasst: Fr 06.08.04 18:15 
LonghornUser hat folgendes geschrieben:
Hallo.

Ich habe bereits im forum gesucht, aber leider nix gefunden.
Wie macht man das möglichst ohne externe datei ?

hofe auf schnelle antworten.

Hoffnung mit zwei F ist aber mehr wert. Wenn es ohne externe Datei gehen soll, dann musst Du auf einen Registry-Eintrag zurückgreifen (wenngleich ich mich momentan nicht an den genauen Eintrag erinnere). Es gibt dort Einträge z.B. um Dateien beim nächsten Neustart auszutauschen/kopieren/löschen.

_________________
mfg Matthias
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Fr 06.08.04 18:17 
Hm, ich würde sagen -> Alle laufenden Instanzen der Exe beenden und dann löschen. Da findest bestimmt auch was im Forum zu: Suche in: Delphi-Forum, Delphi-Library PROZESS BEENDEN

raziel

_________________
JSXGraph
mstuebner
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 132

Win2000, XP
D7
BeitragVerfasst: Fr 06.08.04 18:19 
raziel hat folgendes geschrieben:
Hm, ich würde sagen -> Alle laufenden Instanzen der Exe beenden und dann löschen. Da findest bestimmt auch was im Forum zu: Suche in: Delphi-Forum, Delphi-Library PROZESS BEENDEN

Wie soll ein Programm sich selbst beenden und ANSCHLIESSEND sich selbst löschen? Nur mal als Frage?

_________________
mfg Matthias
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Fr 06.08.04 18:30 
Die Frage war lediglich, wie man eine laufende Exe löscht. Davon, dass die laufende Exe sich selbst löschen soll, war nicht explizit die Rede.

raziel

_________________
JSXGraph
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Fr 06.08.04 18:32 
@ mstuebner: Das stimmt.

Vielleicht sollte iches doch mit ner externen andwendung machen, d.h. mit ner .BAT-Datei. können die sich nicht selbst löschen ? Wenn ja, was muss da genau reingeschrieben werden ? Bin nicht so fit in BAT-Programmierung :(
mstuebner
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 132

Win2000, XP
D7
BeitragVerfasst: Fr 06.08.04 18:32 
raziel hat folgendes geschrieben:
Die Frage war lediglich, wie man eine laufende Exe löscht. Davon, dass die laufende Exe sich selbst löschen soll, war nicht explizit die Rede.

Ich erlaube mir aus dem originalen Posting zu zitieren...
Zitat:
Wie macht man das möglichst ohne externe datei?

_________________
mfg Matthias
mstuebner
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 132

Win2000, XP
D7
BeitragVerfasst: Fr 06.08.04 18:35 
LonghornUser hat folgendes geschrieben:
@ mstuebner: Das stimmt.

Vielleicht sollte iches doch mit ner externen andwendung machen, d.h. mit ner .BAT-Datei. können die sich nicht selbst löschen ? Wenn ja, was muss da genau reingeschrieben werden ? Bin nicht so fit in BAT-Programmierung :(

Die BAT (oder CMD) Zeiten sind auch bei mir eine ganze Weile vorbei, jedoch bin ich der Meinung, dass sich BATCHdateien sehr wohl selbst löschen können, da sie ja nicht ausgeführt sondern in den Interpreter geladen werden.

_________________
mfg Matthias
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Fr 06.08.04 18:41 
mstuebner hat folgendes geschrieben:
Ich erlaube mir aus dem originalen Posting zu zitieren...
Zitat:
Wie macht man das möglichst ohne externe datei?

Was nicht zwangsläufig bedeutet, dass seine ausführende Exe sich selbst löschen soll.

Das mit den .BAT Dateien ginge im Zusammenhang mit einem Autostart-Eintrag in "HKEY_CU\Software\Microsoft\Windows\CurrentVersion\RunOnce" (iirc) und folgender .BAT Datei:

ausblenden deleteit.bat
1:
2:
del diezulöschende.exe
del deleteit.bat

Ganz so sauber is das zwar nicht und es gibt auch ne Fehlermeldung (deleteit.bat kann nicht gefunden werden), aber es funktioniert...

raziel

_________________
JSXGraph
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Fr 06.08.04 18:59 
Ja, dass sich eine laufende Datei (EXE) selbst löscht :)

@raziel: Warum muss das in den Autostart ? Kann man nicht in die BAT-Datei einen befehl â la wait(5); (wobei 5 die zeit in milisekunden ist) ? Also so, dass die EXE die BAT aufruft und sich anschließend selbst beendet. Nachdem der Timer der BAT abgelaufen ist, löscht die datei die EXE sowie die BAT ? Geht das so ?
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 06.08.04 19:08 
musst du schauen hier:
msdn.microsoft.com/l.../base/movefileex.asp

also zumindest unter XP/NT/2000

 MoveFileEx('c:\windows\command.com','nul',MOVEFILE_DELAY_UNTIL_REBOOT)


grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Fr 06.08.04 19:26 
LonghornUser hat folgendes geschrieben:
@raziel: Warum muss das in den Autostart ? Kann man nicht in die BAT-Datei einen befehl â la wait(5); (wobei 5 die zeit in milisekunden ist) ? Also so, dass die EXE die BAT aufruft und sich anschließend selbst beendet. Nachdem der Timer der BAT abgelaufen ist, löscht die datei die EXE sowie die BAT ? Geht das so ?

Nein, das läuft so: Deine Exe macht das, was sie soll. Dann erstellt sie diese Bat Datei (mit den exakten Pfaden) und trägt eben diese Bat Datei in den RunOnce Schlüssel in die Registry ein. Dann wird beim nächsten Booten diese Bat Datei gestartet, ein kleines Dos-Fenster blitzt auf und verschwindet wieder und dann wird der Eintrag (afaik) von Windows gelöscht. Das dürfte auch unter allen Windows-Versionen funktionieren, Probleme könnts geben, wenn der User nicht das Recht hat, die Exe zu löschen... Aber das dürfts eh, bei jeder Lösung unter NT/XP geben...

raziel

_________________
JSXGraph
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Fr 06.08.04 21:10 
hallo nochmals,

ich habe das jetzt so gemacht, dass ich unter runonce die bat datei reingeschrieben habe. die bat datei sieht so aus:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
:Label1
del "C:\Programme\progg\Uninstall.exe"
if Exist "C:\Programme\progg\Uninstall.exe" goto Label1
del "C:\Programme\progg\images\*.*"
rmdir "C:\Programme\progg\images"
rmdir "C:\Programme\proff\"
del C:\RemoveEHK.bat


doch leider fragt er jetzt immer, ob C:\Programme\progg\images\*.* gelöscht werden soll. und zwar mit J/N abfrage sodass der user erst j drücken muss :( Kann ich das autom. bestätigen lassen ?
mstuebner
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 132

Win2000, XP
D7
BeitragVerfasst: Fr 06.08.04 22:16 
LonghornUser hat folgendes geschrieben:
doch leider fragt er jetzt immer, ob C:\Programme\progg\images\*.* gelöscht werden soll. und zwar mit J/N abfrage sodass der user erst j drücken muss :( Kann ich das autom. bestätigen lassen ?

Wäre es sehr innovativ auf der Shell mal del /? einzugeben?

_________________
mfg Matthias
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Sa 07.08.04 09:41 
Um gleich der nächsten Frage ("Warum wird ds Verzeichnis C:\Programme\Progg nicht gelöscht??") vorzubeugen:
Änder in Zeile 6 die beiden "ff" doch einfach in "gg" ;-)

raziel

_________________
JSXGraph
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Sa 07.08.04 12:28 
jaaaaa :lol: das ff war ein schreibfehler. SORRY Aber ich habs jetzt hinbekommen. Geht alles super, bis auf das man neustarten muss, aber das geht ja nicht anders, wenn man will, dass es unter allen windows geht (98/ME/NT/2K/XP). Naja. Danke aber an alle.
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 07.08.04 12:39 
Wenn ich mich nicht irre kannst du auch einfach die BAT-Datei unsichtbar per ShellExecute starten und direkt danach das Programm beenden.
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Sa 07.08.04 12:49 
ja, das ginge, aber dann würde die bat ja bevor die anwendung beendet ist versuchen, sie zu löschen, was ja nicht geht. es sei denn die BAT kann meine anwendung selber beenden (killtask oder so) geht sowas ?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 07.08.04 15:36 
Dann bau in die Batch-Datei eine Schleife ein, die so lange versucht die Exe zu löschen, bis es geht. WEie das geht solltest du hie rim Forum finden.
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 07.08.04 16:49 
Hej Leute, ist einer von euch Spezis auf die Idee gekommen in der FAQ hachzugucken? Da liegt schon seit Jahren ein Beitrag mit einem Beispiel wie man das eigene Programm mit Hilfe eine BAT Datei löschen: www.delphi-forum.de/...ic.php?p=65807#65807

_________________
Popov