| Autor |
Beitrag |
LonghornUser
      
Beiträge: 796
|
Verfasst: 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
      
Beiträge: 132
Win2000, XP
D7
|
Verfasst: 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
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: 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: PROZESS BEENDEN
raziel
_________________ JSXGraph
|
|
mstuebner
      
Beiträge: 132
Win2000, XP
D7
|
Verfasst: 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: PROZESS BEENDEN |
Wie soll ein Programm sich selbst beenden und ANSCHLIESSEND sich selbst löschen? Nur mal als Frage?
_________________ mfg Matthias
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: 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 
      
Beiträge: 796
|
Verfasst: 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
      
Beiträge: 132
Win2000, XP
D7
|
Verfasst: 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
      
Beiträge: 132
Win2000, XP
D7
|
Verfasst: 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
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: 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:
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 
      
Beiträge: 796
|
Verfasst: 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
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: 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
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: 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 
      
Beiträge: 796
|
Verfasst: 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:
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
      
Beiträge: 132
Win2000, XP
D7
|
Verfasst: 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
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: 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 
      
Beiträge: 796
|
Verfasst: Sa 07.08.04 12:28
jaaaaa  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
|
Verfasst: 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 
      
Beiträge: 796
|
Verfasst: 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
|
Verfasst: 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
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: 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
|
|