![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
![]()
Вот как это делает AIDA64:
![]() Т.е. она в реальном времени показывает,сколько сейчас мегабайт\сек передается данных через сетевую карту. Я пробовал 2 функции: GET_ADAPTERS_INFO и GET_ADAPTER_ADRESSES, первая выводит туфту в значениях DWORD dwInUcastPkts и DWORD dwInNUcastPkts структуры MIB_IFROW: ![]() Вторая апишка использует структуру IP_ADAPTER_ADRESSES, параметры TransmitLinkSpeed и RecieveLinkSpeed недоступны на ОС ниже Висты. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,363
|
![]()
Наверно надо смотреть на dwInOctets и dwOutOctets и замерять время и вычислять насколько изменилось между двумя измерениями.
И кстати, не путайте мегабиты и мегабайты. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
![]()
Снова актуально. В инете есть исходник где данная штука реализована с помощью WMI и двух классов: NetworkAdapter и NetworkMonitor.
Получается что если я буду этот огород городить на Embarcadero C++ ,то мне придется делать код на основе CoInitializeEx и вся эта бадяга? Может что попроще и покороче есть? Ещё хочу сделать счетчик трафика, сколько принято и сколько отправлено. Как реализовано в AIDA64 так и не понял, мониторил через API Monitor V2 , но ничего так и не смог найти. |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,807
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
![]()
Вряд ли, отображение скорости в реальном времени идет с дискретом меньше 1 секунды. Если всё это как вы предлагаете замутить в цикл, то будет загрузка CPU 100% и жуткие тормоза.
В Windows есть уже готовый инструментарий WMI Performance Counters. Просто с использованием WMI получается очень сложный и кривой код |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,363
|
![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
![]()
Хорошо, попробуем разделить задачу на 2 части. Сначала нужно подсчитать количество переданных\принятых байт в реальном времени.
Можно ли это сделать чистым API без всякой галиматьи вроде WMI и OLE-объектов? Если использовать WMI, то без этого кода не обойтись походу: Код:
Последний раз редактировалось Stilet; 31.10.2015 в 07:45. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 02.12.2012
Сообщений: 250
|
![]() Код:
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,363
|
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,363
|
![]() |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как узнать скорость передачи данных (при копировании файлов) по сети | calypso | Работа с сетью в Delphi | 0 | 02.12.2012 19:56 |
Сканирование документов по сети / Scan over Ethernet | mixael | Работа с сетью в Delphi | 0 | 08.10.2010 11:03 |
Как определить текущую строку StringGrid | Veiron | Общие вопросы Delphi | 2 | 24.09.2009 03:03 |
Определить текущую ячейку на листе | НикНик | Microsoft Office Excel | 5 | 18.08.2008 09:40 |
Как определить IP-адресс компьютера в локальной сети? | SalasAndriy | C/C++ Сетевое программирование | 2 | 29.11.2007 02:09 |