Entwickler-Ecke
Dateizugriff - Löschen erzwingen
Raezor - Sa 10.03.07 19:03
Titel: Löschen erzwingen
Wie kann ich eine Datei löschen, wenn sie gerade verwendet bzw. Kopiergeschützt oder was weiß ich, ist?
Also soll das Löschen einer Datei erzwungen werden, ohne nachzufragen, auch wenn dadurch schwerwiegende Probleme auftauchen könnten.
Blackheart666 - Sa 10.03.07 19:17
Das wird nicht gehen, und für was sollte das gut sein.
Raezor - Sa 10.03.07 19:46
Seit nicht so neugierig! :P
Was soll daran nicht gehen?
Das löschen ohne abfrage oder das löschen, wobei es gerade verwendet wird?
Blackheart666 - Sa 10.03.07 19:57
Dateien die kopiergeschützt sind kannst Du natürlich löschen, indem Du vor dem Löschen den Kopierschutz aufhebst aber Dateien die in Benutzung sind Nicht.
Delete - Sa 10.03.07 20:00
Wenn Du im Windows-Taskmanager alle Explorer.exe-Instanzen killst, kannst Du über ein Batchfile (oder im CMD-Fenster) jede beliebige Datei löschen - danach im Windows-Taskmanager eine neue Explorer.exe-Instanz starten.
JayEff - Sa 10.03.07 20:10
Raezor hat folgendes geschrieben: |
Seit nicht so neugierig! :P |
(
http://www.seitseid.de ) Nun, du musst verstehen: Man könnte das durchaus als Malware interpretieren, vorallem nach deiner Beschreibung
Raezor hat folgendes geschrieben: |
auch wenn dadurch schwerwiegende Probleme auftauchen könnten. |
Da dieses Forum aber Malware nicht unterstützt, wärs gut zu wissen, was du vor hast ;)
Raezor - Sa 10.03.07 21:00
@ JayEff: Das sprachliche Mittel, "gekommen dich holen" ist eine sehr interpretiärstarke Ellipse,...
Zu den andren:
Wenn ich z.b eine meiner exen starte und ein update drüberlaufen lasse, ist die noch aktiv und soll beendet werden und die dann löschen, um eine andere hinzukopieren.
Also, wie kann ich eine Exe im Hintergrund deaktivieren?
Und wie kann ich die dann löschen, weil die man ja in verwendung nicht löschen kann.
JayEff - Sa 10.03.07 21:25
Raezor hat folgendes geschrieben: |
@ JayEff: Das sprachliche Mittel, "gekommen dich holen" ist eine sehr interpretiärstarke Ellipse,... |
Ich verstehe nicht ganz, was sprachliche Stilmittel mit deinem Problem oder dem Fehler in deiner Rechtschreibung zu tun hat, aber ...
Ein Programm kannst du schließen, in dem du das Handle seines Fensters herausfindest ( =>
X-SPY und per
SENDMESSAGE WM_CLOSE sendest.
Raezor - Sa 10.03.07 23:30
Ya ya, lachd reuig.
Zurück zu meinem Problem.
Es würde dann so aussehen?:
Quelltext
1:
| SENDMESSAGE.WM_CLOSE(hubschrauber.exe); |
Oder?
JayEff - So 11.03.07 00:37
Auf meine Links klicken ... :roll: Unter dem Suchwort "Sendmessage" wirst du Sendmessage sicher niemals als Klasse funden :roll:
Wie schon gesagt, du brauchst das HANDLE des Fensters das du schließen willst.
Force - So 11.03.07 02:02
Ihr müsst nicht extra das Programm dafür schließen!
Es geht auch einfach, wenn man das Handle schließt (weis einer zufällig, wie das geht, ich such schon die ganz Zeit danach ^^)
Siehe auch:
Unlocker [
http://ccollomb.free.fr/unlocker/#comparison], ein Programm, welches auc Handles schließen kann, ohne das Programm zu schließen - leider ist es nur Freeware und nicht OpenSource :(
Chryzler - So 11.03.07 11:21
CloseHandle?
matze - So 11.03.07 13:26
wenn dir das reicht, kannst du auch mit
MOVEFILEEX die Datei nach dem nächsten Neustart von Windows löschen lassen.
\\BBG// - So 11.03.07 13:50
Jetzt überleg(t) doch bitte mal, warum man manche Dateien nicht löschen soll.
Und was passieren kann, wenn man es trotzdem tut.
Unlocker kann das zwar, ist aber recht unschön z.B. Systemprozessen die Handles zu entziehen...
Chryzler - So 11.03.07 15:30
Titel: Re: Löschen erzwingen
\\BBG// hat folgendes geschrieben: |
Jetzt überleg(t) doch bitte mal, warum man manche Dateien nicht löschen soll.
Und was passieren kann, wenn man es trotzdem tut.
Unlocker kann das zwar, ist aber recht unschön z.B. Systemprozessen die Handles zu entziehen... |
Er hat doch gesagt, er ist sich bewusst, dass das Löschen negative Konsequenzen haben kann. ;)
Raezor hat folgendes geschrieben: |
Also soll das Löschen einer Datei erzwungen werden, ohne nachzufragen, auch wenn dadurch schwerwiegende Probleme auftauchen könnten. |
BenBE - Sa 24.03.07 00:50
Also wie gesagt: Es gibt 4 Möglichkeiten, das zu tun ...
1. Gar nicht ... Ist die sicherste (hat so ihre leichten Nachteile)
2. Via Updater und Sendmessage ... Siehe Links von JayEff oder im SwissDelphiCenter zum Thema Updater schreiben
3. Mit MoveFileEx nach'm nächsten Neustart (wenn's denn unbedingt erzwungenes Löschen sein muss - ist von abzuraten)
4. Über erzwungenes Killen von Handles ... Erfordert sehr viel Hintergrundwissen, die richtigen Units und ein paar Hinweise ...
Sagen wir's so: Ich kenne die Units, die man dafür brauch, auch wo die Informationen dafür stehen (wo man die Handles herbekommt), werde dies hier aber nicht schreiben (geschweige denn Sources liefern. Nur soviel vorweg: Es kann noch so oft ein Handle geschlossen sein, wenn Windows der Meinung ist, es brauch die Datei (und sei's, weil er wieder mal ne Logfile als DLL läd ... (macht er bei mir ständig ... Thx@ProcExp), dann bringt es auch wenig, das Handle zu schließen... Ferner werden die meisten Techniken zum Schließen von Handles von guten AV\Desktop-FWs als Malware mit zumindest einem kleinen Hinweis "Programm installiert Treiber" bzw. "Programm versucht physikalischen Speicher zu verändern" markiert. Ferner sind jegliche mir bekannten Methoden zum Schließen von Handles undokumentiert und erfordern zumindest Administrator ODER Debug-Rechte (std. nur Admin).
Chryzler - So 25.03.07 09:38
BenBE hat folgendes geschrieben: |
4. Über erzwungenes Killen von Handles ... Erfordert sehr viel Hintergrundwissen, die richtigen Units und ein paar Hinweise ...
Sagen wir's so: Ich kenne die Units, die man dafür brauch, auch wo die Informationen dafür stehen (wo man die Handles herbekommt), werde dies hier aber nicht schreiben (geschweige denn Sources liefern. Nur soviel vorweg: Es kann noch so oft ein Handle geschlossen sein, wenn Windows der Meinung ist, es brauch die Datei (und sei's, weil er wieder mal ne Logfile als DLL läd ... (macht er bei mir ständig ... Thx@ProcExp), dann bringt es auch wenig, das Handle zu schließen... Ferner werden die meisten Techniken zum Schließen von Handles von guten AV\Desktop-FWs als Malware mit zumindest einem kleinen Hinweis "Programm installiert Treiber" bzw. "Programm versucht physikalischen Speicher zu verändern" markiert. Ferner sind jegliche mir bekannten Methoden zum Schließen von Handles undokumentiert und erfordern zumindest Administrator ODER Debug-Rechte (std. nur Admin). |
Stimmt, Unlocker installiert auch so einen Treiber "UnlockerDriver5". Scheint ja komplizierter zu sein, als es anfangs aussah. :o
jomeier85 - So 25.03.07 20:40
bin mir nicht sicher ob das auch für das beschrieben problem funktioniert...
aber ich kann damit verdamt viel löschen
Dateien Löschen
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function DeleteFile(const AFile: string): boolean; var sh: SHFileOpStruct; begin ZeroMemory(@sh, sizeof(sh)); with sh do begin Wnd := Application.Handle; wFunc := fo_Delete; pFrom := PChar(AFile +#0); fFlags := fof_Silent or fof_NoConfirmation; end; result := SHFileOperation(sh) = 0; end; |
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
Raezor - So 25.03.07 21:49
wo kommt der filepath bzw der file-name hin?
Blackheart666 - So 25.03.07 22:07
Raezor hat folgendes geschrieben: |
wo kommt der filepath bzw der file-name hin? |
Was erwartet denn die function als Parameter !?
Raezor - So 25.03.07 22:17
pFrom := c:\meine\(mark.exe +#0); ?
pFrom := PChar(C.\MEINE\MARK:EXE +#0); ?
pFrom := PChar('c:\meine\mark.exe' +#0); ?
pFrom := PChar(AFile +#0); garnicht hier hin
Blackheart666 - So 25.03.07 22:27
Wie wird denn eine function aufgerufen ?
JayEff - So 25.03.07 23:57
Blackheart666 hat folgendes geschrieben: |
Wie wird denn eine function aufgerufen ? |
:roll: genau das scheint die Frage zu sein - ich verweise, wie so oft, auf den
Crashkurs Delphi von Christian S. [
http://www.christian-stelzmann.de/artikel/crashkurs.htm].
Die alles beantwortende Codezeile:
Delphi-Quelltext
1: 2: 3: 4:
| if DeleteFile('C:\Die\Datei\die\du\Löschen.willst') then showmessage('Hat geklappt!'); else showmessage('Hat nicht geklappt!'); |
Aber bitte nächstes mal Grundwissen mitbringen, bevor man eine derartige Frage stellt :roll:
Edit:
Raezor hat folgendes geschrieben: |
pFrom := c:\meine\(mark.exe +#0); ?
pFrom := PChar(C.\MEINE\MARK:EXE +#0); ? |
Wobei ich mich echt frage, wie man auf so Ideen kommt, wenn man ein Hallo-Welt-Programm zustande bringt :gruebel:
IngoD7 - Mo 26.03.07 00:07
a.) Er hat anscheinend nur wenig Ahnung.
b.) Er will Dateien löschen, auf Teufel komm raus. Auch, wenn die Kiste dadurch Schiffbruch erleidet.
c.) Seine - nicht veröffentlichte, aber im Profil sichtbare - Signatur lautet übersetzt:
Carpe Diem - nutze den Tag und bastl n paar trojaner
("43 61 72 70 65 20 44 69 65 6D - 6E 75 74 7A 65 20 64 65 6E 20 54 61 67
75 6E 64 20 62 61 73 74 6c 20 6E 20 70 61 61 72, 74 72 6F 6A 61 6E 65 72")
Selbst wenn das nur'n blöder Witz sein sollte, solltet ihr seine Fragen erst weiter beantworten, wenn er erwachsen geworden ist.
JayEff - Mo 26.03.07 00:19
IngoD7 hat folgendes geschrieben: |
a.) Er hat anscheinend nur wenig Ahnung.
b.) Er will Dateien löschen, auf Teufel komm raus. Auch, wenn die Kiste dadurch Schiffbruch erleidet.
c.) Seine - nicht veröffentlichte, aber im Profil sichtbare - Signatur lautet übersetzt:
Carpe Diem - nutze den Tag und bastl n paar trojaner
("43 61 72 70 65 20 44 69 65 6D - 6E 75 74 7A 65 20 64 65 6E 20 54 61 67
75 6E 64 20 62 61 73 74 6c 20 6E 20 70 61 61 72, 74 72 6F 6A 61 6E 65 72")
Selbst wenn das nur'n blöder Witz sein sollte, solltet ihr seine Fragen erst weiter beantworten, wenn er erwachsen geworden ist. |
a) ist definitiv wahr. Aus c) folgt, dass die zweite Aussage von b) wahr ist. Ich mach mir allerdings bei diesem Exemplar eines Scriptkiddies keine großen Sorgen, dass er tatsächlich Malware zustande bringt, zumal er einfachste Funktionsaufrufe nicht schafft.
JayEff hat folgendes geschrieben: |
Raezor hat folgendes geschrieben: | auch wenn dadurch schwerwiegende Probleme auftauchen könnten. |
Da dieses Forum aber Malware nicht unterstützt, wärs gut zu wissen, was du vor hast ;) |
Das wiederhol ich nochmal ;)
Aber im Endeffekt würd ich gern die Schließung dieses Topics beantragen...
jasocul - Mo 26.03.07 08:20
Ich habe dieses Topic vorläufig gesperrt.
Einwände gegen die Sperrung kann Raezor an den virtuellen Ansprechpartner richten.
Moderiert von
jasocul: gesperrt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!