Einzelnen Beitrag anzeigen

gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Netzlaufwerk trennen Buchstabe bleibt

  Alt 24. Sep 2010, 15:30
WNetCancelConnection2(..) gibt NO_ERROR zurück.
Ich kann/könnte den Laufwerksbuchstaben auch wieder frei für ein neues Netzlaufwerk verwenden. Das passt schon.


Allerdings suche ich mir vor dem Netzlaufwerk-Verbinden einen freien Laufwerksbuchstaben herraus.
Da aber der Explorer die getrennten Netzlaufwerksbuchstaben beibehält, bekommen ich immer wieder einen neuen Buchstaben zurück, bis ich letztendlich keinen Buchstaben mehr zur Verfügung habe.

PseudoCode:
Delphi-Quellcode:
For LW := 'Zdownto 'Cdo
  if Not DriveIsReady(LW) then
     Result := LW;

DriveIsReady:
Delphi-Quellcode:
function DriveIsReady(const Drive: string): Boolean;
  var
    wfd : TWin32FindData;
    hFindData : THandle;
  begin
    SetErrorMode(SEM_FAILCRITICALERRORS);
    hFindData := FindFirstFile(Pointer(Drive + '*.*'), wfd);
    if hFindData <> INVALID_HANDLE_VALUE then
    begin
      Result := True;
    end
    else
    begin
      Result := False;
    end;
    Windows.FindClose(hFindData);
    SetErrorMode(0);
  end;
Letztendlich habe ich "eine ganze Latte" an getrennten Netzlaufwerken in meinem Explorer stehen, die alle frei wären, aber mein Programm findet keinen freien Laufwerksbuchstaben. Das is 'n bissl doof!

Entweder muß ich der Funktion DriveIsReady etwas ändern, damit sie getrennte Laufwerke berücksichtigt (nur was ), oder aber ich kriege den Laufwerksbuchstaben aus dem Explorer, was mir lieber wäre.
  Mit Zitat antworten Zitat