Einzelnen Beitrag anzeigen

Benutzerbild von HeikoAdams
HeikoAdams

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

Re: Netzlaufwerk verbunden, aber nicht bereit

  Alt 29. Jul 2009, 14:38
Ich würde für die Funktion eher folgenden Code verwenden:
Delphi-Quellcode:
function GetNetworkDriveUNC(const aDriveletter: string): String;
var
  nLen: cardinal;
  sBuff: PChar;
  nResult: DWORD;
begin
  nLen := 0;
  ZeroMemory(@sBuff, SizeOf(PChar));
  nResult := WNetGetConnection(PChar(aDriveletter), sBuff, nLen);

  if (nResult = ERROR_MORE_DATA) then
  begin
     GetMem(sBuff, nLen);
     nResult := WNetGetConnection(PChar(aDriveletter), sBuff, nLen);

     if (nResult = NO_ERROR) or (nResult = ERROR_CONNECTION_UNAVAIL) then
     begin
        SetString(Result, sBuff, nLen);
        Delete(Result, Pos(#0, Result), 1);
     end;
     
     FreeMem(sBuff);
  end;
end;
Der Code hat im wesentlichen zwei Vorteile:
1. Wenn ein Laufwerk zwar gemapt, aber nicht bereit ist, wird trotzdem der UNC-Pfad ermittelt.
2. Der überflüssige #0 wird nicht zurück gegeben.
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