Помощь - Поиск - Пользователи - Календарь
Полная версия: как узнать время работы сетевого подключения
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Rian
вот код из статьи, который вытягивает данные о сетевых подключениях, там на сайте есть готовый исходник
http://www.vr-online.ru/?q=content/schetch...-na-delphi-1078
но я не смог найти информацию о времени работы подключения (или может лучше времени когда соединение было запущено)...

rCount:=tmibiftable(_P^).dwNumEntries-1;
for i:=0 to rCount do
with ListView1.Items.Add do
begin
caption:=copy(Trim(TMibIfTable(_p^).table[i].bDescr),1,50); //описание
subitems.Add(GetInterfaceType(TMibIfTable(_P^).table[i].dwtype)); //тип
subitems.add(SpeedToStr(TMibIfTable(_p^).table[i].dwSpeed)); //скорость
subitems.Add(Traff(TMibIfTable(_p^).table[i].dwOutOctets)); //отправлено
subitems.Add(Traff(TMibIfTable(_p^).table[i].dwInOctets)); //принято
subitems.Add(IntToStr(TMibIfTable(_p^).table[i].dwOutErrors));
subitems.Add(IntToStr(TMibIfTable(_p^).table[i].dwInErrors));
end;
dispose(_MibIfTable);

volvo
Там перевод - никакущий. smile.gif Вот тут читай лучше:

MSDN -> MIB_IFROW Structure... В частности, там сказано о dwLastChange:

Цитата
dwLastChange
DWORD

The length of time, in hundredths of seconds (10^-2 sec), starting from the last computer restart, when the interface entered its current operational state. This value rolls over after 2^32 hundredths of a second.

The dwLastChange member is not currently supported by NDIS. On Windows Vista and later, NDIS returns zero for this member. On earlier versions of Windows, an arbitrary value is returned in this member for the interfaces supported by NDIS. For interfaces supported by other interface providers, they might return an appropriate value.
Более точно время работы интерфейса - если система не перегружалась, а просто отключить/подключить интерфейс - без понятия, как определить.
Rian
перевод никакущий? smile.gif , а на MSDN лучше?
капец! это изощренный мазахист придумал считать время от 2^32 wink.gif

ок.. попробую прикрутить.
volvo
Цитата
это изощренный мазахист придумал считать время от 2^32
blink.gif Вроде ж английским по белому написано: The length of time, in hundredths of seconds (10^-2 sec) (время, в сотых секунды (10-2 сек.)), но This value rolls over after 2^32 hundredths of a second. (Это значение переполняется (в смысле, отсчет начинается заново) каждые 232 сотых секунды (т.е., каждые 42949672.96 секунд))
Rian
blink.gif
эп... ага
тогда... почему у меня lastchange выдает
4 231 339 045, которые я никак не пойму как считать?
при том что gettickcount дает допустим: 3 520 343
volvo
Цитата
тогда... почему у меня lastchange выдает
4 231 339 045, которые я никак не пойму как считать?
Примечание внимательно читал? Про то, что в данное время dwLastChange не поддерживается NDIS, и только для интерфейсов, поддерживаемых другими провайдерами, это поле может возвращать соответствующее значение (а может - и не возвращать...). Так что не все так просто.
Rian
может/не может... ромашка
да это еще немного осложняет
я тогда даже толком продолжительность работы не определю
единственное это число остается постоянным на протяжении всего соединения
значит я все таки смогу видеть отключали его или нет
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.