![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WMI и сеть [D7, WinXP]
pirks © (2007-08-08 13:41:00)у меня такакя проблема :
C помощью WMI получил свединия о первой сетевухе
var
Service: ISWbemServices;
ObjectSet: ISWbemObjectSet;
SObject: ISWbemObject;
PropSet: ISWbemPropertySet;
SProp: ISWbemProperty;
PropEnum, Enum: IEnumVariant;
TempObj: OleVariant;
Value: Cardinal;
StrValue: string;
na : integer ;
begin
na := 1 ;
Service:= DM.SWLocator.ConnectServer( Name , 'root\CIMV2' , User , Password , '' , '' , 0 , nil);
SObject:= Service.Get('Win32_NetworkAdapter', wbemFlagUseAmendedQualifiers, nil);
ObjectSet:= SObject.Instances_(0, nil);
Enum:= (ObjectSet._NewEnum) as IEnumVariant;
Enum.Next(1, TempObj, Value);
SObject:= IUnknown(TempObj) as SWBemObject;
PropSet := SObject.Properties_;
PropEnum := (PropSet._NewEnum) as IEnumVariant;
// начинаю перебирать свойства
while (PropEnum.Next(1, TempObj, Value) = S_OK) do
begin
SProp:= IUnknown(TempObj) as SWBemProperty;
if (SProp.Get_Value <> null) then
begin
with SProp do
begin
if Name = 'SystemName' then
MainInfo.NET.SystemName := Get_Value
else if Name = 'Caption' then
MainInfo.NET.Adapter[na].Caption := Get_Value
else if Name = 'Name' then
MainInfo.NET.Adapter[na].Name := Get_Value
else if Name = 'ServiceName' then
MainInfo.NET.Adapter[na].ServiceName := Get_Value
else if Name = 'Description' then
MainInfo.NET.Adapter[na].Description := Get_Value
else if Name = 'Manufacturer' then
MainInfo.NET.Adapter[na].Manufacturer := Get_Value
else if Name = 'DeviceID' then
MainInfo.NET.Adapter[na].DeviceID := Get_Value
else if Name = 'MACAddress' then
MainInfo.NET.Adapter[na].MACAddress := Get_Value
end; { with }
end; { if 1 }
end;
Всё отлично работает но как получить данные остальных карт у меня лично их 2
Кто нибудь знает ?
Заранее спасибо
pirks (2007-08-08 14:04:00) [1]работает !!! Точняк Enum.Next(1, TempObj, Value);
Спасибо всем за внимаеие :)
Lacmus (2007-08-08 13:56:00) [2]>pirks © (08.08.07 13:41)
Enum.Next(1, TempObj, Value); ?
Сергей М. (2007-08-08 13:53:00) [3]Ну так у тебя ж реализован цикл по ВСЕМ "адаптерам" !
В чем проблема-то ?
pirks (2007-08-08 13:46:00) [4]нет я проверял и на своём у меня 2 своих + VMWare ещё 1
Сергей М. (2007-08-08 13:44:00) [5]
> у меня лично их 2
У тебя-то может их и две, а на удаленном компе вполне может быть и одна)