Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Круглый стол
  
Правила КС
>> Настройки

Фильтр вопросов
>> Новые вопросы
отслеживать по
>> Новые ответы

Избранное

Страница вопросов
Поиск по КС


Специальные проекты:
>> К л ю к в а
>> Г о л о в о л о м к и

Вопрос №

Задать вопрос
Off-topic вопросы

Помощь

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  13:31[Войти] | [Зарегистрироваться]
Ответ на вопрос № 37522

09-11-2005 03:31
Доброго  времени  суток!!!
Появилась  необходимость  проверять  подключение  к  интернету.  Ну  сделал  как  бабушка  писала:  поискал  по  сайту,  по  яндексу  и  т.д.  Нашел  процеДУРУ  InternetCheckConnection.
Если  первый  параметр  установить  в  nil,  то  подключен  ли  ты  к  инету  или  нет  все  равно  будет  писать  что  нет,  а  если  указать  сервер  то  нормально  работает.  А  что  делать  если  сервер  не  доступен?  Не  решил  ли  кто  эту  проблему?
Заранее  спасибо.

[+] Добавить в избранные вопросы

Отслеживать ответы на этот вопрос по RSS

Ответы:


Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице.
Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.

09-11-2005 05:24
Забудьте про понятие "подключён к  интернету", оно не имеет отношения к реальности. А InternetCheckConnection, в любом случае, не будет работать через прокси.
Определитесь, зачем вам нужно "проверять  подключение  к  интернету", если просто пользователю сообщать, то тогда он и должен задавать способ проверки (ему виднее как он подключен), если требуется наличие некоего сервиса (протокола, сервера, файла, итд), то его и надо проверять (пинговать, пытаться скачать итд).

09-11-2005 05:12
Цитирую кусок статьи Лозовюка Александра "Использование Interenet-функций Win32® API" из раздела "Подземелье магов" этого сайта:


InternetCheckConnection
позволяет узнать, есть ли уже соединение с Internet.
Синтаксис:

function InternetCheckConnection(lpszUrl: PAnsiChar;
                                dwFlags: DWORD;
                                dwReserved: DWORD): BOOL; stdcall;

Если нужно проверить, есть ли соединение по конкретному URL, то параметр lpszUrl должен содержать нужный URL; если интересует, есть ли соединение вообще, установите его в nil.
DwFlags может иметь значение только FLAG_ICC_FORCE_CONNECTION. Он делает следующее: если первый параметр не nil, то происходит попытка пропинговать указанный хост. Если параметр lpszUrl установлен в nil и есть соединение с другим сервером, то пингуется этот хост.
Последнее значение , dwReserved, зарезервировано, и должно быть установлено в 0.

К сожалению, я не проверял эту функцию, когда писал статью... а жаль... вот что получаеться: константа FLAG_ICC_FORCE_CONNECTION вообще не описана в Дельфи. более того - ее нет ни в Microsoft Visual C++ 5 (!!!!), VBasic 5 тоже! едва нашел в C++ Builder 5.
Вот описание -
const FLAG_ICC_FORCE_CONNECTION      $00000001
Но! Даже с описанной константой ничего не работает так, как надо! Вот пример:
procedure TForm1.Button1Click(Sender: TObject);
var
h:boolean;
begin
h:= wininet.InternetCheckConnection(nil,$00000001,0);
if
  h = True then
  Label1.Caption:='Соеденение с сервером 127.0.0.1 установлено.'
else
  if h = false
  then
    Label1.Caption:='Соеденения с сервером 127.0.0.1 нет.';

end;
Запускаю вместе с сервером - вроде должно пинговать его. Но первый раз функция показывает что соеденение есть несмотря на то, стоит ли сервер, или нет. Потом все время выдает false.
Если кто из читателей может пролить некоторый свет на проблему этой функции, очень прошу написать мне.
Благодарю Суркиза Максима, который впервые обратил мое внимание на проблему. 


Если ты читал эту статью, советую прочитать до конца и/или повнимательнее.

Адиос, амиго!

Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Жили у бабуси два веселых гуся. Один белый, другой КАКОЙ?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
Тип сообщения:
Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве

    Страница избранных вопросов Круглого стола.
      
    Время на сайте: GMT минус 5 часов

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

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования