Delphi - определить подключение к Интернету.

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Не бывает в природе "чисто дельфийских" (равно как и сишных или же ассемблерных) решений для системных событий. Бывают только обёртки. Впрочем, это уже на оффтоп похоже :)
Даже самый дурацкий замысел можно воплотить мастерски
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

AiK писал(а):Не бывает в природе "чисто дельфийских" (равно как и сишных или же ассемблерных) решений для системных событий. Бывают только обёртки. Впрочем, это уже на оффтоп похоже :)
Под "чисто дельфийским" подходом я подразумеваю, например, какой-нибудь компонент, а в WinApi мне скорее всего просто сказали бы, что такого системного события нет.
Ни что так не ограничивает фантазию программиста, как компилятор...
Snake-ssr
Сообщения: 1
Зарегистрирован: 04 дек 2009, 15:55

Вот это должно работать



uses
windows,
registry,
ShellAPI,
SysUtils,
Psapi,
tlhelp32,
Messages,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
StdCtrls,
shlObj, activeX, filectrl, comObj,WinSock,mshtml, WinINet,OleCtrls, SHDocVw, HTTPApp, HTTPProd,
ComCtrls,ExtCtrls;

var
WebBrowser1:TWebBrowser;
HTMLDocument: IHTMLDocument2;
htm:String;
neton:boolean;

function RealOnline:boolean;



function base:boolean;
begin
WebBrowser1:=TWebBrowser.Create(WebBrowser1);
if htm<>'http://www.ya.ru/' then WebBrowser1.Navigate('www.ya.ru');
if htm<>'http://www.yandex.ru/' then WebBrowser1.Navigate('www.yandex.ru');
htm:='';
while Webbrowser1.ReadyState <> READYSTATE_INTERACTIVE do
application.ProcessMessages;

HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
htm:=HTMLDocument.url;
if (htm='http://www.ya.ru/') or (htm='http://www.yandex.ru/') then neton:=true else neton:=false;

end;


function RealOnline:boolean;
begin
base;
HTMLDocument:=nil;
result:=neton;
end;
Ardatov
Сообщения: 3
Зарегистрирован: 11 янв 2010, 23:22
Контактная информация:

Подключите модуль WinInet, добавте следующую функцию:
function IsConnectedToInternet: Boolean;
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;

...

procedure TForm1.Button1Click(Sender: TObject);
begin
if IsConnectedToInternet then ShowMessage('online') else ShowMessage('offline');
end;
TAI_Andrey
Сообщения: 1
Зарегистрирован: 23 янв 2010, 13:00

посмотри ....
Вложения
xnetdetect-demo.zip
(7.7 КБ) 37 скачиваний
Ответить