Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Name einer Netzwerkfreigabe herausfinden? (https://www.delphipraxis.net/148566-name-einer-netzwerkfreigabe-herausfinden.html)

andreasm82 4. Mär 2010 09:15


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;

Astat 4. Mär 2010 11:40

Re: Name einer Netzwerkfreigabe herausfinden?
 
Hallo andreasm82, anbei Sample.

Delphi-Quellcode:

function 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;
lg. Astat

andreasm82 4. Mär 2010 13:09

Re: Name einer Netzwerkfreigabe herausfinden?
 
Super, genial. Das funktioniert! Danke :thumb:

Woher haste diesen Sample-Code?

Luckie 4. Mär 2010 13:14

Re: Name einer Netzwerkfreigabe herausfinden?
 
Zitat:

Zitat von andreasm82
Woher haste diesen Sample-Code?

Selbst geschrieben? Es soll noch Programmierer geben, die selber Code schreiben können. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 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