Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

Определить сколько сетевое карта   Найти похожие ветки 

 
mss ©   (2005-12-30 06:28) [0]

Как мне узнать в компе установлена сколько сетевое карты?


 
tesseract ©   (2005-12-30 10:13) [1]

Посмотри сзади ситемного блока, там прямоугольные разъёмчики с выемкой, если из них торчит сетвой кабель то в 99 % это сетевая карта. :-)

Может тебе надо получить число задействованых сетевых интерфейсов?


 
Rouse_ ©   (2005-12-30 11:39) [2]

Оч просто :) Примерно вот так:

 IP_ADDRESS_STRING = record
   S: array [0..15] of Char;
 end;
 IP_MASK_STRING = IP_ADDRESS_STRING;
 PIP_MASK_STRING = ^IP_MASK_STRING;

 PIP_ADDR_STRING = ^IP_ADDR_STRING;
 IP_ADDR_STRING = record
   Next: PIP_ADDR_STRING;
   IpAddress: IP_ADDRESS_STRING;
   IpMask: IP_MASK_STRING;
   Context: DWORD;
 end;

 PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;
 IP_ADAPTER_INFO = record
   Next: PIP_ADAPTER_INFO;
   ComboIndex: DWORD;
   AdapterName: array [0..MAX_ADAPTER_NAME_LENGTH + 3] of Char;
   Description: array [0..MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of Char;
   AddressLength: UINT;
   Address: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE;
   Index: DWORD;
   Type_: UINT;
   DhcpEnabled: UINT;
   CurrentIpAddress: PIP_ADDR_STRING;
   IpAddressList: IP_ADDR_STRING;
   GatewayList: IP_ADDR_STRING;
   DhcpServer: IP_ADDR_STRING;
   HaveWins: BOOL;
   PrimaryWinsServer: IP_ADDR_STRING;
   SecondaryWinsServer: IP_ADDR_STRING;
   LeaseObtained: time_t;
   LeaseExpires: time_t;
 end;  

 function GetAdaptersInfo(pAdapterInfo: PIP_ADAPTER_INFO;
   var pOutBufLen: ULONG): DWORD; stdcall; external IPHelper;

...

procedure TfrmMain.ReadLanInterfaces;
var
 InterfaceInfo,
 TmpPointer: PIP_ADAPTER_INFO;
 IP: PIP_ADDR_STRING;
 Len: ULONG;
begin
 // Смотрим сколько памяти нам требуется?
 if GetAdaptersInfo(nil, Len) = ERROR_BUFFER_OVERFLOW then
 begin
   // Берем нужное кол-во
   GetMem(InterfaceInfo, Len);
   try
     // выполнение функции
     if GetAdaptersInfo(InterfaceInfo, Len) = ERROR_SUCCESS then
     begin
       // Перечисляем все сетевые интерфейсы
       TmpPointer := InterfaceInfo;
       repeat
         // перечисляем все IP адреса каждого интерфейса
         IP := @TmpPointer.IpAddressList;
         repeat
           cbInterfaces.Items.Add(Format("%s - [%s]",
             [IP^.IpAddress.S, TmpPointer.Description]));
           IP := IP.Next;
         until IP = nil;
         TmpPointer := TmpPointer.Next;
       until TmpPointer = nil;
     end;
   finally
     // Освобождаем занятую память
     FreeMem(InterfaceInfo);
   end;
 end;
 // Смотрим - можем ли мы продолжать работу программы?
 if cbInterfaces.Items.Count = 0 then
 begin
   memReport.Text := "Сетевые интерфейсы не обнаружены." + sLineBreak +
     "Продолжение работы программы не возможно.";
   btnStartStop.Enabled := False;
   Exit;
 end
 else
   cbInterfaces.ItemIndex := 0;
end


 
mss ©   (2005-12-30 12:23) [3]


> tesseract ©   (30.12.05 10:13) [1]

Точно так, помоги мне


 
Rouse_ ©   (2005-12-30 13:21) [4]


> Точно так, помоги мне

Внимательно читаем приведенный код...



Страницы: 1 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
15-1140601640
Priest
2006-02-22 12:47
2006.03.19
Нужен скрипт


15-1140616241
batalov
2006-02-22 16:50
2006.03.19
Windows CE


10-1112691891
bon
2005-04-05 13:04
2006.03.19
AutoCad & Delphi


15-1140937582
Ega23
2006-02-26 10:06
2006.03.19
С Днём рождения! 26 февраля


15-1140711048
Knight
2006-02-23 19:10
2006.03.19
Кто встречался с таким глюком при выводе 3D?