AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verzeichnis im Startmenü löschen

Ein Thema von moelski · begonnen am 7. Jul 2009 · letzter Beitrag vom 7. Jul 2009
Antwort Antwort
Seite 1 von 2  1 2      
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 09:49
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
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 09:52
Falls Du einen Virenscanner installiert hast, kann es gut sein, das der Dir beim ersten Versuch in die Parade fährt.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 09:56
Moin !

Ne auch mit abgeschaltetem Virenscanner gehts ned.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 10:03
Und wenn Du anstelle von RemoveDir MSDN-Library durchsuchenShFileOperation nutzt?
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

Re: Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 10:52
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.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 13:44
Moin !

Tja ich habe jetzt mal 10 Sekunden gewartet und zusätzlich mittels SHFileOperation gelöscht:
Delphi-Quellcode:
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;
Aber das Ergebnis ist 32. Und wenn man dann mal in die Winerror schaut steht da:
Zitat:
//
// MessageId: ERROR_SHARING_VIOLATION
//
// MessageText:
//
// The process cannot access the file because it is being used by
// another process.
//
#define ERROR_SHARING_VIOLATION 32L
Mist, kann doch nicht angehen sowas ...
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 13:51
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
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 14:14
Wie löscht du die Verknüpfung in dem Ordner?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 14:16
Moin Luckie,

ich lösche ganz normal über:
DeleteFile(FileList[j]); Vorher prüfe ich noch ob ggf. ein Schreibschutz vorhanden ist und entferne den.

Muss ich das anders machen !?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Verzeichnis im Startmenü löschen

  Alt 7. Jul 2009, 14:23
.. in FileList[j] steht da der komplette Pfad, oder wechsest Du vorher in das Verzeichnis?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 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