Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 07.03.2012, 21:31   #1
dmitriegorovih
Ещё не
Участник клуба
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Адрес: г.Белгород
Сообщений: 517
Репутация: 151

icq: 611181658
По умолчанию Получить список всех сетевых подключений

Всем доброго времени суток!
Сколько не искал в интернете нашёл код лишь на C++.
Помогите плиз получить список всех сетевых подключений. Заранее Благодарен.
Изображения
Тип файла: jpg Безимени-1.jpg (232.8 Кб, 286 просмотров)
__________________
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума   Ответить с цитированием
Старый 13.03.2012, 10:27   #2
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 843
Репутация: 435
По умолчанию

Вот держи, извиняюсь за внешний вид для примера писал, в этой простенькой программке когда запустишь в ListBox появятся все твои сетевые устройства, выбрав любое в ListBox можешь его откл. или вкл. также можно и другие устройства выводить меняя GUID устройства с помощью ComboBox. Для каких либо изменений или добавления устройств редактируй FunctSetupAPI.pas
Изображения
Тип файла: jpg Device.jpg (36.4 Кб, 280 просмотров)
Вложения
Тип файла: rar Device.rar (186.8 Кб, 224 просмотров)

Последний раз редактировалось Aliens_wolfs; 13.03.2012 в 12:47.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 13.03.2012, 15:43   #3
dmitriegorovih
Ещё не
Участник клуба
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Адрес: г.Белгород
Сообщений: 517
Репутация: 151

icq: 611181658
По умолчанию

Спасибо, класно работает я как раз искал но именно сами имена получить бы ))
__________________
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума   Ответить с цитированием
Старый 13.03.2012, 16:07   #4
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 843
Репутация: 435
По умолчанию

Имена в реестре в этом разделе
Цитата:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSe t001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}
Но сейчас посмотрю как с помошью SetupApi получить попробую в моей програмке сделать

Вот накидал, програмка показывает только устройства по имени ListBox Сделал другую програмку но для примера пойдет, Для сего тебе нужен этот список Сетевых адаптеров.
И почитай здесь про SetupApi http://gtsoftware18rus.3dn.ru/publ/u...dows/4-1-0-226
Вложения
Тип файла: rar DeviceLan.rar (165.1 Кб, 129 просмотров)

Последний раз редактировалось Aliens_wolfs; 13.03.2012 в 17:35.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 13.03.2012, 21:18   #5
dmitriegorovih
Ещё не
Участник клуба
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Адрес: г.Белгород
Сообщений: 517
Репутация: 151

icq: 611181658
По умолчанию

Хм у меня не выводит имена в чем проблема?
__________________
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума   Ответить с цитированием
Старый 14.03.2012, 08:55   #6
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 843
Репутация: 435
По умолчанию

В программе DeviceLan что я дал сделай исправление, выключи проверку устройства у тебя должны появится все имена, для того чтобы лишнее непоказывало, нужно правильно проверку делать.
В этом коде должен получить все имена
Код:

//Получаем список устройств в разделе
procedure DeviceList(DEVICE_GUID: TGUID; List: TStrings);
var
  DevInfoData: SP_DEVINFO_DATA;
  hDevInfo:  DWORD;
  I, DataT, Buffersize: DWORD;
  Buffer: PAnsiChar;
begin
  hDevInfo := SetupDiGetClassDevs(@DEVICE_GUID, nil, HWND(nil), DIGCF_PRESENT);
  try
    DevInfoData.cbSize := sizeof(SP_DEVINFO_DATA);
    I := 0;
    Buffersize := 500;
    GetMem(Buffer, Buffersize);
    FillChar(Buffer^, Buffersize, 0);
    try
      while SetupDiEnumDeviceInfo(hDevInfo, I, @DevInfoData) do
      begin
       // Здесь исправление
        // SetupDiGetDeviceRegistryProperty(hDevInfo, @DevInfoData,
        // SPDRP_HARDWAREID, @DataT, PByte(Buffer), Buffersize, nil);
        // if Pos('PCI\VEN',Buffer)<>0 then
       // begin 
           SetupDiGetDeviceRegistryProperty(hDevInfo, @DevInfoData,
        SPDRP_MFG, @DataT, PByte(Buffer), Buffersize, nil);
        List.add(Buffer);
       // end;
        Inc(I);
      end;
    finally
      FreeMem(Buffer);
    end;
  finally
    SetupDiDestroyDeviceInfoList(hDevInfo);
  end;
end;

А затем попробуй это, тут уже проверка по устройству и должен выдать только устройство
Код:

//Получаем список устройств в разделе
procedure DeviceList(DEVICE_GUID: TGUID; List: TStrings);
var
  DevInfoData: SP_DEVINFO_DATA;
  hDevInfo:  DWORD;
  I, DataT, Buffersize: DWORD;
  Buffer: PAnsiChar;
begin
  hDevInfo := SetupDiGetClassDevs(@DEVICE_GUID, nil, HWND(nil), DIGCF_PRESENT);
  try
    DevInfoData.cbSize := sizeof(SP_DEVINFO_DATA);
    I := 0;
    Buffersize := 500;
    GetMem(Buffer, Buffersize);
    FillChar(Buffer^, Buffersize, 0);
    try
      while SetupDiEnumDeviceInfo(hDevInfo, I, @DevInfoData) do
      begin
        SetupDiGetDeviceRegistryProperty(hDevInfo, @DevInfoData,
        SPDRP_ENUMERATOR_NAME, @DataT, PByte(Buffer), Buffersize, nil);
        if Pos('PCI',Buffer)<>0 then
        begin
           SetupDiGetDeviceRegistryProperty(hDevInfo, @DevInfoData,
          SPDRP_MFG, @DataT, PByte(Buffer), Buffersize, nil);
        List.add(Buffer);
        end;
        Inc(I);
      end;
    finally
      FreeMem(Buffer);
    end;
  finally
    SetupDiDestroyDeviceInfoList(hDevInfo);
  end;
end;


Последний раз редактировалось Aliens_wolfs; 14.03.2012 в 09:22.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 14.03.2012, 16:21   #7
dmitriegorovih
Ещё не
Участник клуба
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Адрес: г.Белгород
Сообщений: 517
Репутация: 151

icq: 611181658
По умолчанию

не эти имена мне нужны, а те что в 1# посту ну "Beeline, Подключение по локальной сети 4,Подключение по локальной сети,VirtualBox Host-Only Network"
__________________
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума   Ответить с цитированием
Старый 15.03.2012, 00:21   #8
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 843
Репутация: 435
По умолчанию

Все что тебе нужно находится в этом разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSe t001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}
В общем вся инфа в реестре
Попробуем снять эту инфу

Последний раз редактировалось Aliens_wolfs; 15.03.2012 в 01:22.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 15.03.2012, 12:47   #9
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 843
Репутация: 435
По умолчанию

Еще одну программку сделал для чтения сетевых устройств, без SetupApi. В ней убери что тебе ненужно, там расписано что к чему. Имена я только два смог найти, а насчет имени типа Beeline я на 3G модеме пробовал в реестре не нашел, где то в памяти наверное находится когда сетевой адаптер подключен к провайдеру.
Изображения
Тип файла: jpg Lan.jpg (42.7 Кб, 258 просмотров)
Вложения
Тип файла: rar DeviceLan2.rar (210.2 Кб, 191 просмотров)

Последний раз редактировалось Aliens_wolfs; 15.03.2012 в 15:57.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 15.03.2012, 16:15   #10
dmitriegorovih
Ещё не
Участник клуба
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Адрес: г.Белгород
Сообщений: 517
Репутация: 151

icq: 611181658
Смех

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Еще одну программку сделал для чтения сетевых устройств, без SetupApi. В ней убери что тебе ненужно, там расписано что к чему. Имена я только два смог найти, а насчет имени типа Beeline я на 3G модеме пробовал в реестре не нашел, где то в памяти наверное находится когда сетевой адаптер подключен к провайдеру.
спасибо огромнейшие кстати я нашел как вывести Beeline
Вложения
Тип файла: zip ras соеденения.zip (50.7 Кб, 182 просмотров)
__________________
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить список TCP/IP подключений Lauri Общие вопросы Delphi 3 22.06.2010 01:33
Как получить список сетевых адаптеров и их Id SeRhy Общие вопросы Delphi 2 17.03.2010 18:57
Как получить список всех своих ip адресов now9009 Работа с сетью в Delphi 1 18.03.2009 06:40
Работа со списком сетевых подключений zanneo Win Api 2 15.08.2008 10:51
Получить список сетевых принтеров Старовъръ Win Api 4 12.08.2008 17:06


11:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru