Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как 100% узнать есть ли в данный момент соединение с инетом? [D7, Win2k, WinXP]


keymaster ©   (2003-05-11 11:47:00) 

Нужно незаметно для юзера узнавать есть ли соединение с интернетом.
Инет - модемный, часто рвётся.
Если использовать InetIsOffline(0) то при первом соединении она скажет что инет есть навсегда. т.е. даже если соединение пропало, то она говорит что оно есть.

Я пользовался такой штукой:

function TMainForm.IsOnline : Boolean;
var
WSAData : TWSAData;
p : PHostEnt;
Str : String;
begin
WSAStartup($0101, WSAData);
try
p := GetHostByName("www.microsoft.com");
Str := inet_ntoa(PInAddr(p.h_addr_list^)^);
//если соединения нет то здесь возникает Exception
Result := True;
except
Result := False;
end;
WSACleanup;
end;


И это должно проверять сеть раз в 5 минут.
Печально то, что при первом запуске программы (из автозагрузки),
возникает окно системы "вы или программа запросили информацию с узла www.microsoft.com" что уже не является "незаметным для пользователя".

Кто с этим боролся, поделитесь, плиз.


Reindeer Moss Eater   (2003-05-12 15:28:00) [1]

И если у пользователя есть сетевой экран, от подобного сообщения никуда не деться.


Reindeer Moss Eater   (2003-05-12 15:27:00) [2]

Зачем трояну знать о соединении с со всем инетом?
Достаточно соединения с хостом, на который сливается информация.


Song   (2003-05-11 11:56:00) [3]

Нет 100%-го способа.


Наверх

Титульная страница Поиск, карта сайта Написать письмо