Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ подключение к интернету

Автор: kuzyara 20.01.2007 12:49

я нашел три способа как проверить подключение к интернету, но все они говорят неправду!!! wacko.gif почему?? может есть какой-нибудь другой способ??


№1

function InetIsOffline(flag: integer): WordBool; stdcall; external 'url.dll';
-------------------------------------------------------------
if InetIsOffline(0)
then ShowMessage('This computer is not connected to Internet!')
else ShowMessage('You are connected to Internet!');



№2
uses ..., WinInet;
-------------------------------------------------------------
if InternetCheckConnection(nil,$00000001,0)
then showmessage('est inet')
else showmessage('net ineta');



№3
if GetSystemMetrics(SM_NETWORK) and $01 = $01
then ShowMessage('Computer is attached to a network!')
else ShowMessage('Computer is not attached to a network!');



Прикрепленные файлы
Прикрепленный файл  V_INETE_LI.rar ( 7.16 килобайт ) Кол-во скачиваний: 213

Автор: Lapp 20.01.2007 14:06

А известно, что внутри у этих функций?
Можно же по-простому пинговать несколько сайтов. Если хоть один пакет вернется - все ок.

Автор: kuzyara 20.01.2007 14:45

Цитата(Lapp @ 20.01.2007 15:06) *

А известно, что внутри у этих функций?
Можно же по-простому пинговать несколько сайтов. Если хоть один пакет вернется - все ок.

а можно пример, или мат-л по осуществлению!?

Автор: volvo 20.01.2007 15:05

Цитата
почему??
Потому, что:
1) http://msdn2.microsoft.com/en-us/library/ms724385.aspx говорит, что
Цитата
SM_NETWORK - The least significant bit is set if a network is present; otherwise, it is cleared. The other bits are reserved for future use.
Где-то сказано про интернет? Говорится про сеть, а это - разные вещи... Здесь проверяется только активность сетевого интерфейса...

2) то, что InternetCheckConnection не работает как положено - указано в DRKB, странно, что ты не читаешь ее...

3) по поводу "подключение к Интернету"... Определи, пожалуйста это понятие, потом продолжим обсуждать тему. Пока НИКТО не смог внятно определить что же это есть - "подключение к Интернету"...

4) если надумаешь использовать InternetGetConnectedState, то можешь даже не пытаться:
Цитата(MSDN)
You cannot rely solely on the fact that InternetGetConnectedState returning TRUE means that you have a valid active Internet connection. It is impossible for InternetGetConnectedState to determine if the entire connection to the Internet is functioning without sending a request to a server. This is why you need to send a request to determine if you are really connected or not. You can be assured however that if InternetGetConnectedState returns TRUE, that attempting your connection will NOT cause you to be prompted to connect to the default Internet Service Provider.

Автор: kuzyara 20.01.2007 15:48

Цитата
Потому, что:
1) GetSystemMetrics говорит, что

ок, согласен. просто "сеть" ассоциируется с Интернетом, а следовательно и взаимозаменяется smile.gif (по крайней мере у меня до этого момента)

Цитата
2) то, что InternetCheckConnection не работает как положено

надежда умирает последней smile.gif , там же строго не сказано - не работает; автор сам просит пролить свет на проблему этой функции.

Цитата
указано в DRKB, странно, что ты не читаешь ее...

читаю, все эти примеры оттуда и взяты...

Цитата
3) по поводу "подключение к Интернету"...

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

Автор: volvo 20.01.2007 17:57

Я же просто так ничего не спрашиваю... Ты ничуть не изменил то, что написал выше...

Цитата
подключен ли компьютер к интернету в данный момент, или нет.
Я же тебя спрашиваю, КАК подключен? Читай, а не просматривай ответы... Соединение обязано быть физическим? Попробуй ответить на этот вопрос...

Автор: мисс_граффити 20.01.2007 17:58

Цитата
Можно же по-простому пинговать несколько сайтов. Если хоть один пакет вернется - все ок.

Я такую штуку делала с помощью компонента Ping библиотеки Internet Component Suite....
Рассказать подробнее?

Автор: kuzyara 20.01.2007 19:32

королевство:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=37125
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=37522
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=37784
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=39170
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=40410
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=40790
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=43574



тема закрыта.