Verzeichnis im Startmenü löschen
Moin !
Irgendwie stehe ich gerade aufm Schlauch ... Und zwar versuche ich im Startmenü unter "All Users" einen Ordner zu löschen. Der Ordner enthält einen Link. Diesen Link kann ich löschen. Der Ordner ist also def. leer. Anschließend versuche ich dann mit RemoveDir den Ordner zu löschen. Dort bekomme ich aber immer diesen Fehler (GetLastError): Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird Das erstaunliche ist nun ... Lasse ich die gleiche Routine danach nochmal laufen (der Ordner ist jetzt von vornerein leer), dann wird auch der Ordner anstandslos gelöscht. Ich habe schon gedacht es liegt evtl. daran das der Ordner einen Schribschutz hat. Aber dem ist nicht so. Hat jemand eine Idee (und ggf. ne Lösung) zu diesem obskuren Problem :gruebel: |
Re: Verzeichnis im Startmenü löschen
Falls Du einen Virenscanner installiert hast, kann es gut sein, das der Dir beim ersten Versuch in die Parade fährt.
|
Re: Verzeichnis im Startmenü löschen
Moin !
Ne auch mit abgeschaltetem Virenscanner gehts ned. |
Re: Verzeichnis im Startmenü löschen
Und wenn Du anstelle von RemoveDir ShFileOperation nutzt?
|
Re: Verzeichnis im Startmenü löschen
Hallo,
füge in Deiner Routine, wenn der Fehler auftritt eine kleine Pause ein und versuche es dann nochmal (Sleep(1000) oder Sleep(5000)). Manchmal braucht das Betriebssystem etwas Zeit, bis es merkt, dass ein leerer Ordner gelöscht werden kann bzw. bis alle vorhergehende Operationen auf den / in dem zu löschenden Ordner abgeschlossen sind. |
Re: Verzeichnis im Startmenü löschen
Moin !
Tja ich habe jetzt mal 10 Sekunden gewartet und zusätzlich mittels SHFileOperation gelöscht:
Delphi-Quellcode:
Aber das Ergebnis ist 32. Und wenn man dann mal in die Winerror schaut steht da:
function ShellDelete(const fsoName: string): Integer;
var sh: SHFileOpStruct; iResult: Integer; begin ZeroMemory(@sh, sizeof(sh)); with sh do begin wFunc := fo_Delete; pFrom := PChar(fsoName + #0); fFlags := fof_Silent or fof_NoConfirmation or fof_NoErrorUI; end; Result := SHFileOperation(sh); end; Zitat:
|
Re: Verzeichnis im Startmenü löschen
Nachtrag:
Habe jetzt mal mit dem Process Explorer geschaut wer ein Handle auf den Ordner hat. Das ist nur meine Anwendung. Sonst nüscht. Ich blicks langsam nicht mehr :pale: |
Re: Verzeichnis im Startmenü löschen
Wie löscht du die Verknüpfung in dem Ordner?
|
Re: Verzeichnis im Startmenü löschen
Moin Luckie,
ich lösche ganz normal über:
Delphi-Quellcode:
Vorher prüfe ich noch ob ggf. ein Schreibschutz vorhanden ist und entferne den.
DeleteFile(FileList[j]);
Muss ich das anders machen !? |
Re: Verzeichnis im Startmenü löschen
.. in FileList[j] steht da der komplette Pfad, oder wechsest Du vorher in das Verzeichnis?
Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz