Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Aus Mapping Servernamen ermitteln (https://www.delphipraxis.net/67027-aus-mapping-servernamen-ermitteln.html)

BrinkschulteManfred 8. Apr 2006 09:42


Aus Mapping Servernamen ermitteln
 
Hallo zusammen,

um einen ConnetionString für eine Firebird-Nutzung dynamisch zu ermiteln möchte ich gerne aus der Laufwerkswahl, von der das Programm gestartet wird, den Servernamen des genutzten Servers ermitteln. Leider komme ich da nicht weiter.

Als Beispiel:
Aus D: möchte ich gerne ermitteln, ob es sich dabei um ein Netzwerklaufwerk oder um ein lokales Laufwerk handelt oder noch besser, egal um was für einen Laufwerkstypen es sich handelt benötige ich den NetBIOS Namen.
Ich habe hier zwar schon gefunden, dass dies wohl mit WNetEnumResource gehen muss, aber wie genau konnte ich nicht ergründen.

Kann mir einer helfen?

Beste Grüße
Manfred

ringli 8. Apr 2006 10:26

Re: Aus Mapping Servernamen ermitteln
 
Delphi-Quellcode:
function NetDriveQuery (_locDrive : String) : String;
var
  pLocName : PChar;
  pShareName : PChar;
  FuncResult : DWORD;
  BufLength : Cardinal;
begin
  // Speicher für die Strings allozieren!
  pLocName  := StrAlloc(255);
  pShareName := StrAlloc(255);
  // String in PString kopieren
  StrPCopy (pLocName, _locDrive);
  BufLength := 255;
  FuncResult := WNetGetConnection(pLocName,pShareName,BufLength);
  if FuncResult <> NO_ERROR then
    Result := pLocName
  else
    Result := pShareName;
  // aufräumen!
  StrDispose (pShareName);
  StrDispose (pLocName);
end;
Die Funktion habe ich glaube ich mal hier in der DP gefunden, bin mir aber nicht mehr sicher...

Damit bekommst du zumindest schon mal raus ob es sich um ein gemapptes Netzlaufwerk handelt oder nicht.

BrinkschulteManfred 8. Apr 2006 11:24

Re: Aus Mapping Servernamen ermitteln
 
Hallo ringle,

vielen Dank schon mal vorab für Deinen Hinweis. Ich teste gerade mit der Abfrage der Registry ein wenig herum. Und zwar meine ich den Schlüssel

HKEY_CURRENT_USER\Network\

Dort gibt es für jedes Mapping einen Unterschlüssel mit dem Wert "RemotePath" und den Daten des UNS-Pfades. Diesen könnte ich doch auch nutzen, um den Servernamen zu ermitteln. Spricht etwas dagegen, was ich zur Zeit nicht beachtet habe?

Gruß
Manfred

ringli 8. Apr 2006 13:03

Re: Aus Mapping Servernamen ermitteln
 
Zitat:

Dort gibt es für jedes Mapping einen Unterschlüssel mit dem Wert "RemotePath" und den Daten des UNS-Pfades.
Werden in diesem Schlüssel nicht nur permanent gemappte Laufwerke eingetragen? Das solltest du erstmal ausprobieren. Bei Laufwerken die userabhängig über eine GPO bzw. das Benutzerprofil auf einem Server erstellt werden tauchen da bspw. nämlich nicht auf.

BrinkschulteManfred 8. Apr 2006 16:10

Re: Aus Mapping Servernamen ermitteln
 
Gibt es denn keine andere Stelle, an der die Mappings und die UNC-Pfade abgelegt sind?

Beste Grüße
Manfred


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