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

Вниз

Индикатор загрузки сети   Найти похожие ветки 

 
pipll ©   (2004-12-11 01:43) [0]

Мастера, подскажите как реализовать сабж?


 
Piter ©   (2004-12-11 02:33) [1]

что ты подразуемваешь под загрузкой сети?


 
pipll ©   (2004-12-11 03:59) [2]

Использование в процентах (как в XP диспетчер задач показывает)


 
Piter ©   (2004-12-11 11:50) [3]

У меня w2k - вроде ничего про сеть не показывает.

А что XP подразумевает под загрузкой сети?


 
Biryk   (2004-12-11 17:06) [4]

Posishi statyu pro Monitoring seti (podklucheny), tam v primere est sposob realizacii proverki zakgruzhenosti (vividit spisok vseh adapterov (realnih i virtualnih)) i ihniy trafik


 
pipll ©   (2004-12-11 18:39) [5]

А что XP подразумевает под загрузкой сети?

Под загрузкой сети понимается отношение объема всего трафика, проходящего ч\з сетевуху к пропускной способности сети


 
Piter ©   (2004-12-11 18:53) [6]

pipll ©   (11.12.04 18:39) [5]
к пропускной способности сети


а что понимается под пропускной способностью сети?


 
pipll ©   (2004-12-11 18:56) [7]

1000 Mb/sec, 100 Mb/sec, 10 Mb/sec


 
Biryk   (2004-12-11 19:33) [8]

Vi poishite tu statyu tam vse est krasivo zdelano


 
Piter ©   (2004-12-12 00:59) [9]

pipll ©   (11.12.04 18:56) [7]
1000 Mb/sec, 100 Mb/sec, 10 Mb/sec


я понимаю, но откуда ее берут? Или выбирают любое значение рандомом? Как можно определить - какая пропускная способность у сети?


 
Anatoly Podgoretsky ©   (2004-12-12 01:02) [10]

Piter ©   (12.12.04 00:59) [9]
Наведи мыщку на иконку сетевого соединения и увидишь.


 
123 ©   (2004-12-12 02:18) [11]

Anatoly Podgoretsky ©   (12.12.04 01:02) [10]
Подключение по локальной сети
Скорость: ...
Отправлено: ...
Получено: ...

Где тут эта приславутая "загрузка сети"?

Я тоже никак не могу понять, что требует автор ветки...


 
Piter ©   (2004-12-12 02:40) [12]

Anatoly Podgoretsky ©   (12.12.04 1:02) [10]
Наведи мыщку на иконку сетевого соединения и увидишь.


ничего не вижу


 
-=SS=- ©   (2004-12-12 12:35) [13]

Возможно это поможет
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls, ComCtrls;

type
 TForm1 = class(TForm)
   Timer1: TTimer;
   lvTraffic: TListView;
   procedure Timer1Timer(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
 type  
 TMibIfRow = packed record
   wszName  : array[0..255] of WideChar;
   dwIndex  : DWORD;
   dwType  : DWORD;
   dwMtu  : DWORD;
   dwSpeed  : DWORD;
   dwPhysAddrLen : DWORD;
   bPhysAddr  : array[0..7] of Byte;
   dwAdminStatus : DWORD;
   dwOperStatus : DWORD;
   dwLastChange : DWORD;
   dwInOctets  : DWORD;
   dwInUcastPkts : DWORD;
   dwInNUCastPkts : DWORD;
   dwInDiscards : DWORD;
   dwInErrors  : DWORD;
   dwInUnknownProtos : DWORD;
   dwOutOctets  : DWORD;
   dwOutUCastPkts : DWORD;
   dwOutNUCastPkts : DWORD;
   dwOutDiscards : DWORD;
   dwOutErrors  : DWORD;
   dwOutQLen  : DWORD;
   dwDescrLen  : DWORD;
   bDescr  : array[0..255] of Char;
 end;
 TMibIfArray = array [0..512] of TMibIfRow;
 PMibIfRow = ^TMibIfRow;
 PmibIfArray = ^TmibIfArray;
 
type
TMibIfTable = packed record
  dwNumEntries : DWORD;
  Table     : TMibIfArray;
end;
PMibIfTable = ^ TMibIfTable;

var
 Form1: TForm1;
 GetIfTable:function( pIfTable: PMibIfTable;
    pdwSize : PULONG;
    bOrder : Boolean ): DWORD; stdcall;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
type TMAC = array [0..7] of Byte;
 //В качестве первого значения массив, второе значение, размер данных в массиве
 function GetMAC(Value: TMAC; Length: DWORD): String;
 var
   i: Integer;
begin
 if Length = 0 then Result := "00-00-00-00-00-00" else
   begin
     Result := "";
     for i:= 0 to Length -2 do
       Result := Result + IntToHex(Value[i],2)+"-";
     Result := Result + IntToHex(Value[Length-1],2);
   end;
 end;

//Сама процедура
var
 FLibHandle  : THandle;
 Table  : TMibIfTable;
 i   : Integer;
 Size    : Integer;
begin
 Timer1.Enabled := False; //Приостанавливаем на всякий случай таймер
 lvTraffic.Items.BeginUpdate;
 lvTraffic.Items.Clear;  //Очищаем список
 FLibHandle := LoadLibrary("IPHLPAPI.DLL"); //Загружаем библиотеку
 if FLibHandle = 0 then Exit;
 @GetIfTable := GetProcAddress(FLibHandle, "GetIfTable");
 if not Assigned(GetIfTable) then
 begin
   FreeLibrary(FLibHandle);
   Close;
 end;

 Size := SizeOf(Table);
 if GetIfTable(@Table, @Size, False ) = 0 then //Выполняем функцию
 I:=0;
//    for i:= 0 to Table.dwNumEntries-1 do
   begin
     with lvTraffic.Items.Add do
      begin //Выводим результаты

       Caption := String(Table.Table[i].bDescr); //Наименование интерфейса
       SubItems.Add(GetMAC(TMAC(Table.Table[i].bPhysAddr),
         Table.Table[i].dwPhysAddrLen)); //MAC адрес
       SubItems.Add(IntToStr(Table.Table[i].dwInOctets)); //Всего принято байт
       SubItems.Add(IntToStr(Table.Table[i].dwOutOctets)); //Всего отправлено байт
       SubItems.Add(IntToStr(Table.Table[i].dwSpeed));
       SubItems.Add(IntToStr(Table.Table[i].dwInErrors));
     end;
   end;
 lvTraffic.Items.EndUpdate;
 FreeLibrary(FLibHandle);
 Timer1.Enabled := True; //Не забываем активировать таймер
end;

end.


 
Anatoly Podgoretsky ©   (2004-12-12 12:49) [14]

123 ©   (12.12.04 02:18) [11]
Речь про скорость сетевого соединения, оно определяется сетевым адаптером.

Piter ©   (12.12.04 02:40) [12]
Установи Windows XP


 
Anatoly Podgoretsky ©   (2004-12-12 12:50) [15]

pipll ©   (11.12.04 03:59) [2]
Показывает проценты от максимальной скорости для данного сетевого соединения.


 
Piter ©   (2004-12-12 12:53) [16]

Anatoly Podgoretsky ©   (12.12.04 12:49) [14]
Установи Windows XP


ну вот еще...


 
Anatoly Podgoretsky ©   (2004-12-12 12:59) [17]

pipll ©   (11.12.04 01:43)  
Копать надо в сторону PerformanceCounters из реестра, какие конкретно ключи не помню. В Вин98 ресстре эти ветки видны в через RegEdit, на ХР они скрыты, но доступны программно.


 
Anatoly Podgoretsky ©   (2004-12-12 13:00) [18]

Piter ©   (12.12.04 12:53) [16]
Тогда внимательно читаем вопрос и смотрим Индикатор загрузки сети [D7, WinXP] и не пытаемся применять это к другим ОС.


 
Anatoly Podgoretsky ©   (2004-12-12 13:05) [19]

Anatoly Podgoretsky ©   (12.12.04 12:59) [17]
Находятся в секции HKEY_PERFORMANCE_DATA или HKEY_DYN_DATA
Можно получить список всех ключей этих секции и списки параметров по каждому из ключей, дальше будет понятно по названиям, кроме того надо смотреть по функциям АПИ - там есть функции сброса и считывания счетчиков. У меня гдето ранее валялся код, но найти я его не смогу.


 
Ryan   (2004-12-12 14:45) [20]

HQUERY hQuery;
HCOUNTER phCounter;
PDH_FMT_COUNTERVALUE  *lpItemBuffer;
PDH_STATUS pdh;

lpItemBuffer = (PDH_FMT_COUNTERVALUE *) GlobalAlloc
                  (GPTR, sizeof(PDH_FMT_COUNTERVALUE));

 pdh = PdhOpenQuery(NULL,11,&hQuery);
 if (pdh == ERROR_SUCCESS) {
   char * szCounter = "\\Network Interface\\Bytes total/sec";
   pdh = PdhAddCounter(hQuery, szCounter, 0, &phCounter);
 }

А потом вызовом

pdh = PdhCollectQueryData(hQuery);
pdh = PdhGetFormattedCounterValue (phCounter,
                                  PDH_FMT_DOUBLE,
                                  NULL,
                                  lpItemBuffer);
if (pdh == ERROR_SUCCESS)
  ShowMessage(FloatToStr(lpItemBuffer->doubleValue));

можно получать данные о текущей скорости.

А пропускную способность адаптера можно получить из счетчика "Current Bandwidth"

PS.
Код приблизительный, так что ...
Извиняюсь за С++, просто кажется в дельфи я не обнаружил заголовков для PDH



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

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

Наверх




Память: 0.52 MB
Время: 0.063 c
1-1107436477
Zelius
2005-02-03 16:14
2005.02.20
Использование Ansi строк в многопоточном приложении...


3-1106543428
SarDoX
2005-01-24 08:10
2005.02.20
Сложный поиск


14-1107087547
Думкин
2005-01-30 15:19
2005.02.20
Кто последний в дурку? Я за вами.


11-1091695983
Unknown Mystic
2004-08-05 12:53
2005.02.20
Небольшие вопросы TIniFile, TKOLListView.


14-1107165684
1008
2005-01-31 13:01
2005.02.20
McSimm ©