Das Ganze mal als komplette Funktion verpackt. Diese Funktion gibt den Pfad eines angegebenen Netzlaufwerkes zurück. Ist dies nicht möglich wird einfach der angegebene Laufwerksbuchstabe zurückgegeben. Musst du halt ein wenig auf deine Bedürfnisse anpassen.
Delphi-Quellcode:
function NetDriveQuery (localDrive : String) : String;
var
lpLocalName : PChar;
lpRemoteName : PChar;
FuncResult : DWORD;
lpnLength : Cardinal;
begin
// Speicher für die Strings allozieren!
lpLocalName := AllocMem(MAX_PATH + 1);
lpRemoteName := AllocMem(MAX_PATH + 1);
// String in PString kopieren
StrPCopy (lpLocalName, localDrive);
lpnLength := MAX_PATH;
FuncResult := WNetGetConnection(lpLocalName, lpRemoteName, lpnLength);
if FuncResult <> NO_ERROR then
begin
Result := lpLocalName;
end
else
begin
Result := lpRemoteName;
end;
// aufräumen!
FreeMem(lpRemoteName);
FreeMem(lpLocalName);
end;