Offene Datei löschen
-
Hallo zusammen,
ich möchte eine Datei löschen, bzw. ersetzen, welche von einem anderen Programm geöffnet ist.
Was bleiben mir für Möglichkeiten, wenn ich das Programm nicht beenden möchte?Mit freundlichen Grüßen.
-
Keine. Du kannst das File höchstens zum lesen öffnen.
-
Was willst denn machen? Vielleicht gibt es auch andere Lösungswege.
-
Wie gesagt, mir geht es darum eine Datei, welche von einem anderen Programm geöffnet ist, zu bearbeiten, genauer, zu beschreiben...
Swordfish schrieb:
Keine. Du kannst das File höchstens zum lesen öffnen.
Glaube ich nicht, die Frage wird es nur sein, ob der Aufwand berechtigt ist
Edit:
Eine Idee wäre ja einen RemoteThread in dem anderen Programm zu starten, welcher CloseHandle aufruft... dann müsste ich "nur" noch an das Handle kommen...
-
Was willst du denn genau machen ?
Du kannst den Zugriff auf Dateien z.B. mit Tools wie Unlocker freigeben, reicht das für deine Zwecke aus ?
-
DarkShadow44 schrieb:
Was willst du denn genau machen ?
Du kannst den Zugriff auf Dateien z.B. mit Tools wie Unlocker freigeben, reicht das für deine Zwecke aus ?Genau das ist der Punkt. Nur das ich keinen Unlocker benutzen will, sondern mein eigenes Programm. Die meisten Unlocker, bzw. alle Unlocker die ich kenne, benutzen einen Treiber, um ihre Funktion zu realisieren. Das möchte ich aber vermeiden. Eine Lösung wäre evtl. eine DLL in den entsprechenden Prozess zu injizieren, die alle Handles auflistet, und das entsprechende dann schließt. Eine andere Möglichkeit, die ich kenne ist, DuplicateHandle mit dem "DUPLICATE_CLOSE_SOURCE" Flag aufzurufen (von meinem Programm aus), jedoch funktioniert das bei mir (Windows 7 x64) nicht.
Jetzt wollte ich eben hören, ob ihr vielleicht noch einige, bessere Vorschläge habt...
-
Die saubere Lösung ist nun mal ein Treiber.
-
...der allerdings unter Windows7 x64 signiert sein müsste...