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

Новости

Time-counter



Пожалуй, всем известно, что по временная оплата интернета уходить в прошлое не собирается. И провайдеры как предоставляли свои услуги, беря деньги за время, так и продолжают это делать. Но поскольку некоторые провы немного не честные организации (да и самому интересно знать, сколько времени насидел, а ещё иногда возникает вопрос — не шастает ли кто по инету с моего рабочего места во время обеденного перерыва :)), приходится искать проги считающие время (а ещё лучше ведущие логи подключений :)). Но вот и прикол — все проги для подсчёта времени обычно всячески показывают своё присутствие (от значка в треи, до своих окошек), так что они нам не подходят! (т.к. отвлекают, да и действия чужаков на своём компе мы ими не засечём). Так что придётся всё писать самим :). Что ж, тебе наверно известно, что винда при подключении по Dial-Up’у использует RasAPI (Remote Access Service API), так что мы их и будем использовать. Все эти апишки содержатся в rasapi32.dll, которая есть в каждой винде. Ну-с, приступим…
Для этого нам понадобятся две функции —

DWORD RasEnumConnections( // Эта функция покажет все активные соединения
LPRASCONN lprasconn, // этот буфер функция заполнит инфой о соединениях
LPDWORD lpcb, // количество байт в буфере
LPDWORD lpcConnections // количество активных соединений
);

На Delphi мы её объявим так:

function RasEnumConnections(RasConnArray: LPRasConnA; var lpcb: Longint;
var lpcConnections: Longint): Longint; stdcall; external ‘rasapi32.dll’ name ‘RasEnumConnectionsA’;
Так что по этой функции мы будем определять в инете мы или нет. Если же мы (или не мы :)) в сети, то количество активных соединеней будет равно 1. (т.к. у большинства пользователей инета только один модем :))
Вот структура (которую заполнит RasEnumConnections) буфера о соединениях:

Type
THRasConn = Integer;
TRasConnState = Integer;
LPRasConnA = ^TRasConnA;
TRasConnA = record
dwSize : Longint; // версия структуры, по которой функция определит, как её заполнить {TRasConnA.dwSize=sizeof(TRasConnA)}
hrasconn : THRasConn; // Хэндл соединения
szEntryName : Array[0..RAS_MaxEntryName] of AnsiChar; // Запись из телефонной книги

Страницы: 1 2 3

Обсуждене

Отзывов нет на «Time-counter»

Ваш отзыв

Рубрики


Error: Can't open cache file!
Error: Can't write cache!
2017-09-20 14:31:15 - : /var/www/it-freelance.ru/3492ujnfmcdnfbvhgyr87w9i/cache_it-freelance_ru_8c.txt
2017-09-20 14:31:15 - : /var/www/it-freelance.ru/3492ujnfmcdnfbvhgyr87w9i/cache_it-freelance_ru_8c.txt

  • Рубрик нет