![]() |
Name einer Netzwerkfreigabe herausfinden?
Ich möchte herausfinden, ob ein bestimmter Laufwerksbuchstabe mit einer bestimmten Netzwerkfreigabe verbunden ist.
Laut MSDN kann man dazu WNetGetConnection verwenden.
Delphi-Quellcode:
DWORD WNetGetConnection(
__in LPCTSTR lpLocalName, __out LPTSTR lpRemoteName, __inout LPDWORD lpnLength ); Mein Code sieht nun so aus, aber er liefert keinen szDeviceName zurück... woran könnte es liegen? Hinweis: Das Laufwerk DATAPATHCONST ist als q definiert und gibt es, ich bin mit dem Netzwerk verbunden, und der entsprechende Server ist auch eingeschaltet und verfügbar
Delphi-Quellcode:
var
szDeviceName : string ; cchBuff : cardinal; dwResult : dword; begin szDeviceName := ''; dwResult := WNetGetConnection(DATAPATHCONST+':', pchar(szDeviceName), cchBuff); datalog(inttostr(dwResult)); // Ausgabe in Logfenster, es wird 234 ausgegeben datalog(szDeviceName); // Ausgabe in Logfenster, momentan leer end; |
Re: Name einer Netzwerkfreigabe herausfinden?
Hallo andreasm82, anbei Sample.
Delphi-Quellcode:
lg. Astatfunction GetVolume(const DriveChar: Char): string; const MaxVolSize = 260; var Path : array [0..3] of Char; NU, VolSize : DWord; Vol : PChar; begin Path[0] := DriveChar; Path[1] := ':'; Path[2] := #0; VolSize := MaxVolSize; GetMem(Vol, MaxVolSize); Vol[0] := #0; Result := ''; try if WNetGetConnection(Path, Vol, VolSize) = WN_SUCCESS then Result := StrPas(Vol) else begin if GetVolumeInformation(PChar(DriveChar + ':\'), Vol, MAX_PATH, nil, NU, NU, nil, 0) then Result := Vol; Result := Format('[%s]',[Result]); end; finally FreeMem(Vol, MaxVolSize); end; end; |
Re: Name einer Netzwerkfreigabe herausfinden?
Super, genial. Das funktioniert! Danke :thumb:
Woher haste diesen Sample-Code? |
Re: Name einer Netzwerkfreigabe herausfinden?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz