Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Служба Рассылок Subscribe.Ru проекта Citycat.Ru
Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 22.09.01 09:04

Новые компоненты   |x|
Лучшее из нашего FAQ   |x|
Как проверить соединение с интернетом.
Часто приложению, которое работает в интернете, требуется знать, подключён пользователь к интернету или нет. Предлагаю Вам довольно гибкое решение этого вопроса.
Совместимость: Delphi 3.x (или выше)

Для работы Вам необходимо импортировать функцию InetIsOffline из URL.DLL:

function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL';

а затем поместить в программу простой вызов функции для проверки статуса соединения:

if InetIsOffline(0) then
  ShowMessage('This computer is not connected to Internet!')
else
  ShowMessage(You are connected to Internet!');

Эта функция возвращает TRUE если соединение с интернетов отсутствует, или FALSE если соединение установлено.

Замечание:
параметр Flag игнорируется, соответственно используем ноль.
Эта DLL обычно проинсталлирована на большинстве компьютеров. Она также существует в Win98 либо поставляется с Internet Explorer 4 или выше, Office 97 и т.д..
Более подробно можно прочитать в MSDN.
Оригинал: http://msdn.microsoft.com/library/psdk/shellcc/shell/Functions/InetIsOffline.htm

Автор: Vitaly Zayko (zayko@vitsoftware.com)
Источник: http://www.sources.ru/delphi/

Комментарий от Ефремова Александра (aleks@vilgus.kamchatka.ru)
Зашел на официальный сайт Microsoft по MSDN где черным по белому написано, что функция эта выдает false не только, когда комп подключен к
интернету, но и когда ЕЩЕ НЕ БЫЛО ПОПЫТОК подключения (or if no attempt has yet been made to connect to the Internet). Ну и скажите мне теперь, какой у этой функции тогда смысл ? Да, умом Microsoft не
понять (к сожалению). Помогите найти нормальный способ проверки подключения к инет (onlin! e).

Merlin: самым нормальны, мне кажется, пинговать какой-то адрес в интернете, лучше два :) но это тоже связано с проблемой, что может запускаться установка связи, когда не надо.

Комментарий от Dmitry Shkil (Mitya@bigmir.net) ShkilSoft

interface
uses
 Windows;
{ Flags for InternetGetConnectedState }
const
 INTERNET_CONNECTION_MODEM      = 1;
 INTERNET_CONNECTION_LAN        = 2;
 INTERNET_CONNECTION_PROXY      = 4;
 INTERNET_CONNECTION_MODEM_BUSY = 8;
const
 winetdll = 'wininet.dll';
function InternetGetConnectedState(lpdwFlags: LPDWORD; dwReserved:
DWORD):BOOL; stdcall; external winetdll name 'InternetGetConnectedState';
implementation

function InternetConnected: Boolean;
var
 dwConnectionTypes: DWORD;
begin
 dwConnectionTypes :=
   INTERNET_CONNECTION_MODEM +
   INTERNET_CONNECTION_LAN +
   INTERNET_CONNECTION_PROXY;
 Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;

Хотя возможно через RAS API. Компоненты можно поискать на www.torry.net


Kondakov (owl@conecs.lviv.ua)
Я попробовал это на основе предложения Dmitriya Работает вроде. . Через Button  or Activate

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

const IC_Modem=1;
IC_LAN= 2;
IC_PROXY=3;
IC_MODEM_BUSY=4;
winetdll='wininet.dll';

type
TForm1 = class(TForm)
Button1: TButton;

procedure CheckState(Sender: TObject);
end;

var
Form1: TForm1;

implementation

function InternetGetConnectedState(lpdwFlags:LPDWORD; dwReserved: DWORD): BOOLEAN; stdcall; external winetdll name
'InternetGetConnectedState';

{$R *.DFM}

procedure TForm1.CheckState(Sender: TObject);var dwConnectionTypes: DWORD;
begin
dwConnectionTypes:=IC_MODEM+IC_LAN+IC_PROXY;
if InternetGetConnectedState(@dwConnectionTypes,0) then ShowMessage('Youa connected')
else ShowMessage('No Connection');
end;

end.

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
У нас большой выбор статей   |x|
Обзор Kylix (Delphi для Linux)
Недавно выпущенный фирмой Borland продукт - Kylix (Delphi for Linux) вызвал большой интерес в среде разработчиков. На предрелизном этапе разработки мнения о Kylix порой были диаметрально противоположны, от экзальтированно-восторженных до агрессивно-негативных.
Автор попытался в данной статье изложить свое мнение о данном продукте, основанное на недельном опыте работы его эксплуатации. Претендовать на 100% объективность, поработав столь недолгое время, трудно, но надеюсь, что мои мысли будут интересны и полезны читателям.
Другие сайты о DELPHI   |x|
Delphi - любителям недокументированных возможностей
Недокументированное, FAQ, советы, нюансы программирования, WinApi, обмен опытом и многое другое
Опрос населения :)
Готовится к выпуску журнал "Мастера DELPHI". Согласны ли вы его покупать ежемесячно?
»»» Да
»»» Нет
Для души

Хокку дня
О, с какой тоской
Птица из клетки глядит
На полет мотылька!

Афоризмы
Не отчаивайся! Худшее еще впереди! (Филандер Чейз Джонсон)

Фраза дня
Вы очень кстати - у нас тут разврат...

И на закуску коротенький анекдот
Сидит девочка в песочнице, что-то ест и очень громко чавкает.
Подходит к ней мужик и спрашивает:
- Девочка, а что ты ешь?
А девочка отвечает:
- Не жнаю, шамо приполжло!?

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=7843


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.com)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
Рейтингуется SpyLog

В избранное