odczyt nazwy połaczenia sieciowego

0

Witam,
Potrzebuję wyciagnąć z systemu nazwę połączenia sieciowego, tj. jak nazwana jest karta sieciowa( zazwyczaj to "Połączenie lokalne", "Połączenie sieci bezprzewodowej", ale czasem nazwane jest inaczej przez użytkownika). Wiem że w rejestrze da się to <ort>znaleŹć</ort>, nawet wiem gdzie, lecz ścieżka w rejestrze na końcu jest indywidualna dla każdego komputera(kończy się kluczem w styli"{6734tno7f523b7}"), co komplikuje sprawę. Najlepszym rozwiazaniem było by mieć bezpośrednią ścieżkę do folderu połączenia sieciowego w panelu sterowania, lecz jej nie znam, albo jakaś komenda sprawdzająca nazwę połączeń sieciowych. Pomóżcie!!
Pozdrawiam
Stingear

0
stingear napisał(a)

Witam,
Potrzebuję wyciagnąć z systemu nazwę połączenia sieciowego, tj. jak nazwana jest karta sieciowa( zazwyczaj to "Połączenie lokalne", "Połączenie sieci bezprzewodowej", ale czasem nazwane jest inaczej przez użytkownika).

Tu masz moją "ręczną" metodę wyciągania nazw połączeń sieciowych i obsługujących je kart sieciowych.

Połóż na formę Memo1 i Button1. Jako zdarzenie Button1Click daj kod:


//--
Uses Registry;
//--

procedure TForm1.Button1Click(Sender: TObject);
 Var
   Reg:TRegistry;
   Karty:TStrings;
   NazwaKarty, KlasaKarty,NazwaPolaczenia:String;
   i:Integer;
 const
     KluczKart = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards';
 KluczPolaczen = 'SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}';

 Begin {1}
  Memo1.Clear;
  Reg:=TRegistry.Create;
  try {2}
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    If Reg.OpenKeyReadOnly(KluczKart) then
      Begin {3}
        Karty:=TStringList.Create;
        try {4}
          Reg.GetKeyNames(Karty);
          Reg.CloseKey;
          For i:=0 to Karty.Count-1 do
            If Reg.OpenKeyReadOnly(KluczKart+'\'+Karty[i]) then
              Begin {5}
                NazwaKarty:=Reg.ReadString('Description');
                KlasaKarty:=Reg.ReadString('ServiceName');
                Reg.CloseKey;
                If Reg.OpenKeyReadOnly(KluczPolaczen+'\'+KlasaKarty+'\Connection') then
                  Begin
                    NazwaPolaczenia:=Reg.ReadString('Name');
                    Reg.CloseKey;
                    Memo1.Lines.Add('Nazwa połączenia: "'+NazwaPolaczenia+'", Nazwa karty: "'+Nazwakarty+ '"');
                  End;
              End; {5}
        finally {4}
          Karty.Free;
        end; {4}
      End; {3}
  finally {2}
    Reg.Free;
  end; {2}
 End;

Pzdr.
Marogo

1 użytkowników online, w tym zalogowanych: 0, gości: 1