Autor |
Beitrag |
Raezor
      
Beiträge: 54
Status:
Administrator des Mondes
|
Verfasst: Sa 10.03.07 19:03
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
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Sa 10.03.07 19:17
Das wird nicht gehen, und für was sollte das gut sein.
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
Raezor 
      
Beiträge: 54
Status:
Administrator des Mondes
|
Verfasst: Sa 10.03.07 19:46
Seit nicht so neugierig!
Was soll daran nicht gehen?
Das löschen ohne abfrage oder das löschen, wobei es gerade verwendet wird?
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: 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.
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 10.03.07 20:10
Raezor hat folgendes geschrieben: | Seit nicht so neugierig! |
( 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 
      
Beiträge: 54
Status:
Administrator des Mondes
|
Verfasst: 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
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: 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 
      
Beiträge: 54
Status:
Administrator des Mondes
|
Verfasst: 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
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: So 11.03.07 00:37
Auf meine Links klicken ...  Unter dem Suchwort "Sendmessage" wirst du Sendmessage sicher niemals als Klasse funden
Wie schon gesagt, du brauchst das HANDLE des Fensters das du schließen willst.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Force
      
Beiträge: 143
Ubuntu Jaunty
FreePascal
|
Verfasst: 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, ein Programm, welches auc Handles schließen kann, ohne das Programm zu schließen - leider ist es nur Freeware und nicht OpenSource 
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: So 11.03.07 11:21
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: 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.
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
\\BBG//
      
Beiträge: 21
Win XP Pro SP2, Win 2000 Pro SP4
Delphi 7 Enterprise
|
Verfasst: 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...
_________________ "Irren ist menschlich. Aber wenn man richtig Mist bauen will, braucht man einen Computer."
(Dan Rather, CBS-Fernsehreporter)
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: So 11.03.07 15:30
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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).
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 25.03.07 04:33
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: 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. 
|
|
jomeier85
      
Beiträge: 46
|
Verfasst: 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 
      
Beiträge: 54
Status:
Administrator des Mondes
|
Verfasst: So 25.03.07 21:49
wo kommt der filepath bzw der file-name hin?
|
|