Aktuelle Zeit: 19.06.2013 06:15

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 01:41 
Offline

Registriert: 09.09.2010 14:10
Nabend,

ich bin in einem C Forum darauf gestoßen, das es soweit möglich sein soll, das sich eine Exe selbst löscht. Dies geschiet über Umwege...

Code:
Procedure SelfErase()
  Protected File.i, Temp.s, File_.s
  Temp = GetEnvironmentVariable("TEMP")
  File_ = Temp+"\delete_programm.bat"
  File = CreateFile(#PB_Any, File_)
  WriteStringN(File, ":Repeat")
  WriteStringN(File, "del "+Chr(34)+ProgramFilename()+Chr(34))
  WriteStringN(File, "If exist "+Chr(34)+ProgramFilename()+Chr(34)+" Goto Repeat")
  WriteStringN(File, "del "+Chr(34)+File_+Chr(34))
  CloseFile(File)
  RunProgram(File_, "", "", #PB_Program_Hide)
  End
EndProcedure

SelfErase()


Alleridngs geht noch ein schwarzes CMD Fenster auf, welches ich mir nicht erklären kann und die Datei wird nicht gelöscht... Rufe ich die Batch von Hand auf, löscht dieses die Exe + die Batch.

Habt ihr eine Idee wo der Fehler liegt?

Lg und Dank,
pyromane


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 08:50 
Offline
Benutzeravatar

Registriert: 14.08.2007 15:41
Wohnort: Lelbach
Wofür braucht man denn eine Exe die sich selbst löscht?

_________________
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 09:37 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
7x7 hat geschrieben:
Wofür braucht man denn eine Exe die sich selbst löscht?

Wenn der Code dann auch noch den Source löschen würde, wäre es perfekt :mrgreen:

Für einen Uninstaller z.B. :wink:

Ansonsten, funktionierende Beispiele findet man über die Boardsuche, evtl. auch mal im engl.
Forum gucken.

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 15 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 09:43 
Offline

Registriert: 19.09.2007 22:18
ts-soft hat geschrieben:
Wenn der Code dann auch noch den Source löschen würde, wäre es perfekt :mrgreen:
...Gute Idee. Und am Besten PureBasic gleich mit deinstallieren. <)

_________________
"Ich habe aus Spontanität den Thread arbeiten lassen - er bietet kein deutliches Fundament." — Alexi (aka. cOoki3druqs)
"ich hogffe ihr könnt den fehle endecken" — Marvin133
"Ideoten gibts ..." — computerfreak


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 10:16 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Überall
@pyromane
Es wurde bereits darüber diskutiert: http://purebasic.fr/german/viewtopic.php?f=16&t=24253

c4s hat geschrieben:
ts-soft hat geschrieben:
Wenn der Code dann auch noch den Source löschen würde, wäre es perfekt :mrgreen:
...Gute Idee. Und am Besten PureBasic gleich mit deinstallieren. <)

Windows dann auch. Und am besten den Computer gleich entsorgen.

_________________
Bild Bild
Bild PureBasic 5.10 x86/x64 Bild| Downloads | WinAPI Library | Tipps und Tricks | Backups (23.03.2013) (+89 Dateien (308 MB))
Das Benutzen von EnableExplicit ist kostenlos und vermeidet Fehler. | Gib Goto keine Chance. | Avira? Nein Danke.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 12:47 
Offline

Registriert: 09.09.2010 14:10
Hallo
danke für eure Antworten. In einem anderen Thread habe ich einen ähnlichen Code gefunden und den etwas umgeschrieben. Ich bin nun bei folgendem Code:

Code:
Procedure SelfErase()
  RunProgram(GetEnvironmentVariable("comspec"), "/c del "+Chr(34)+ProgramFilename()+Chr(34), "", #PB_Program_Hide)
  End
EndProcedure


Das funktioniert auch schin gut. Nun flackert ganz kurz die schwarze CMD Box auf. Das stört mich bei anderen Programmen immer enorm und ich möchte in meinem Programm nicht den selben Fehler machen :D

Wieso passiert das mit dem flackern?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 14:36 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
RSBasic hat geschrieben:
c4s hat geschrieben:
ts-soft hat geschrieben:
Wenn der Code dann auch noch den Source löschen würde, wäre es perfekt :mrgreen:
...Gute Idee. Und am Besten PureBasic gleich mit deinstallieren. <)

Windows dann auch. Und am besten den Computer gleich entsorgen.

Also bitte, nun ist aber gut. :D
Nicht, dass am Ende noch jemand ein Schwarzes Loch programmiert. :lol:
Code:
MessageRequester("Letzte Frage", "Möchten Sie sich selbst und den Rest Ihres Sonnensystems auf Erbsengröße verkleinern?", #PB_MessageRequester_YesNo)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 16:41 
Offline
Moderator
Benutzeravatar

Registriert: 27.05.2008 12:44
Wohnort: Oberland
Man sollte die bei jedem vernünftigen PC-System serienmäßig installierte Selbstzerstörung aktivieren.
Code:
MessageRequester("Allerletzte Frage", "Nuke?", #PB_MessageRequester_YesNo)
:mrgreen:

Nein, man könnte einen Nebenläufer starten, der ganz einfach solange das Dateisystem fragt, bis die Programmdatei geschlossen wird und wieder Schreib-/Löschzugriff erlaubt ist. Dann kurzen Prozeß machen, worauf sich auch dieses Programm (das sich ja nur im RAM befindet) beendet.

Gruß - WPö

_________________
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.11b1 auf Pentium T7200 2,00GHz, 2GB DDR2, ATI X1400.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 17:13 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Falls ein Nebenläufer ein Thread sein sollte, das geht nicht, da der Thread mit dem Process endet.
Es geht nur mit einem Script und Interpreter, wie es mit einer Batch der Fall ist, weil die cmd.exe
wollen wir ja nicht löschen.

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 15 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Exe die sich selbst löscht
BeitragVerfasst: 11.04.2012 18:21 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Überall
ts-soft hat geschrieben:
Es geht nur mit einem Script und Interpreter,

Oder Windows auffordern, die gewünschte Datei später zu entfernen.

_________________
Bild Bild
Bild PureBasic 5.10 x86/x64 Bild| Downloads | WinAPI Library | Tipps und Tricks | Backups (23.03.2013) (+89 Dateien (308 MB))
Das Benutzen von EnableExplicit ist kostenlos und vermeidet Fehler. | Gib Goto keine Chance. | Avira? Nein Danke.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye