Форум: "WinAPI";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
ВнизОпределить сколько сетевое карта Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c