// вы читаете...

Новости

Траффик



Пожалуй всем известно, что по временная оплата интернета уходит в прошлое (в том числе и на Dial-up’е).
Провайдеры всё чаще предоставляют свои услуги, беря деньги за трафик. Но поскольку некоторые провы
немного не честные организации (да и самому интересно знать, сколько метров насидел), приходится искать
проги считающие этот самый трафик. Один мой знакомый подключился к инету, и в конце месяца (при оплате
услуги) возникли у него некоторые сомнения: столько ли он скачал? не хочет ли надуть его пров? Ну, что ж,
он пришёл ко мне и всё это рассказал. Я посоветовал поставить какой-нибудь firewall с возможностью подсчёта
трафика, но он отказался сославшись на то, что машина у него старая, хакать его незачем, да и настраивать
он его не хочет. Далее следовала прозьба — написать прогу которая считала бы трафик. Загвоздка заключалась
в том, что у него Win98 (следовательно RAS Port Object отсутствовал, и инфу о соединении надо было искать
где либо ещё). OK. Первое что мне пришло в голову (делал, ведь, для друга (то есть быстро и бесплатно :])) —
использовать окно «Статуса соединения». Так как оно всегда существует при работе в инете. Вот собственно
код с комментариями:

program Modem_traf;

uses
Windows,SysUtils;

label l,l1;

const
FileName=’Conf.txt’; //имя конфигурационного файла (в нём содержится время «сна» проги)
ReportName=’Report.txt’; //файл отчёта
var Sleep_Time:integer=5; //частота обновления инфы о соединении (5 секунд)
tmp,i,h:integer;
Title:string=’#32770′; //название класса окна со статистикой
temps:array[1..12] of char;
flag:boolean=false;
f:text;
begin
if fileexists(FileName) then begin //если существует файл конфигурации,
assignfile(f,FileName); //то прочесть из него время (в секундах)
reset(f);
readln(f,Sleep_Time);
closefile(f);
end;
while true do begin //основной цикл
h:=FindWindow(@Title[1],nil); //ищем окно статистики
getwindowtext(h,@temps,sizeof(temps));
if (h<>0)and(temps=’Подключено ‘+#0) then begin //проверка нужное ли окно мы нашли (так как класс #32770 встречается довольно часто)
h:=GetWindow(h,GW_CHILD); //если оно, значит получаем кол-во полученных байт
for i:=1 to 5 do begin

Страницы: 1 2

Обсуждене

Отзывов нет на «Траффик»

Ваш отзыв

Рубрики