![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как 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%-го способа.