Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Как открыть окно свойств текущего соединения с Инетом?

Hello comp,

Собственно, мне нужно через определенные промежутки времени
считывать сколько байт попало мне в комп. Я думаю это сделать,
выцарапывая эту инфу из окна свойств соединения. Хотя если есть другой
способ, будьте добры, поделитесь.

Ответить   Вадим Шешунов Sun, 9 Apr 2006 13:57:45 +0300 (#535652)

 

Ответы:

Здравствуйте, Вадим Шешунов!

В 95/98 виндах - чтение определенных ветвей реестра
(из HKEY_DYN_DATA).
В 2K/XP - через PDH... хм, в мсдн пишут можно тоже через реестр
(из HKEY_PERFORMANCE_DATA).

Могу кинуть рабочий исходник монитора lan/dialup (для win98) или пример
из мсдн (для win2K/XP).

С уважением, AleX

Номер выпуска : 5228
Возраст листа : 932 (дней)
Количество подписчиков : 540
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/535859
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Mon, 10 Apr 2006 04:37:54 +0400 (#535859)

 

Спасибо, AleX. Если не затруднит, киньте в личку пример для ХР.
Кстати, в реестре я не нашел ветки HKEY_PERFORMANCE_DATA - у меня XP
Professional 2002 SP2.

Ответить   Вадим Шешунов Mon, 10 Apr 2006 12:36:03 +0300 (#536060)

 

Здравствуйте, Вадим Шешунов!

Не затруднит.

Аналогично. Вот что пишут в мсдн по этим ключам:
HKEY_DYN_DATA
Windows Me/98/95: Registry entries subordinate to this key allow you to
collect performance data.

HKEY_PERFORMANCE_DATA
Registry entries subordinate to this key allow you to access performance
data. The data is not actually stored in the registry; the registry
functions cause the system to collect the data from its source.
Windows Me/98/95: This key is not supported.
С уважением, AleX

Номер выпуска : 5233
Возраст листа : 933 (дней)
Количество подписчиков : 540
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/536306
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Tue, 11 Apr 2006 04:37:14 +0400 (#536306)

 

Здравствуйте, AleX.

Tuesday, April 11, 2006, 3:37:14 AM, you wrote:

Ответить   Вадим Шешунов Tue, 11 Apr 2006 10:42:25 +0300 (#536490)

 


Как вариант можно использовать следующий пример
type
TSessionInfo502 = packed record
Sesi502_cname: PWideChar;
Sesi502_username: PWideChar;
Sesi502_num_opens: DWORD;
Sesi502_time: DWORD;
Sesi502_idle_time: DWORD;
Sesi502_user_flags: DWORD;
Sesi502_cltype_name: PWideChar;
Sesi502_transport: PWideChar;
End;
PSessionInfo502 = ^TSessionInfo502;
TSessionInfo502Array = array[0..512] of TSessionInfo502;
PSessionInfo502Array = ^TSessionInfo502Array;

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
GetIfTable:function( pIfTable : PMibIfTable;
pdwSize : PULONG;
bOrder : Boolean ): DWORD; stdcall;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
FLibHandle : THandle;
Table: TMibIfTable;
i : integer;
Size : integer;
begin
ListView1.Items.BeginUpdate;
ListView1.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 //Выполняем функцию
for i:= 0 to Table.dwNumEntries-1 do begin
with ListView1.Items.Add do begin //Выводим результаты
Caption := String(Table.Table[i].bDescr); //Наименование интерфейса
SubItems.Add(IntToStr(Table.Table[i].dwInOctets)); //Всего принято байт
SubItems.Add(IntToStr(Table.Table[i].dwOutOctets)); //Всего отправлено
байт
end;
end;
ListView1.Items.EndUpdate;
FreeLibrary(FLibHandle);
end;

С уважением, Padre Mortius

Номер выпуска : 5230
Возраст листа : 932 (дней)
Количество подписчиков : 540
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/536223
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Mon, 10 Apr 2006 20:22:28 +0400 (#536223)

 

Здравствуйте, Padre.

Monday, April 10, 2006, 7:22:28 PM, you wrote:

..............

Отлично работает! Спасибо большое!

Ответить   Вадим Шешунов Tue, 11 Apr 2006 00:24:10 +0300 (#536294)