
Delphi - определить подключение к Интернету.
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Не бывает в природе "чисто дельфийских" (равно как и сишных или же ассемблерных) решений для системных событий. Бывают только обёртки. Впрочем, это уже на оффтоп похоже 

Даже самый дурацкий замысел можно воплотить мастерски
Под "чисто дельфийским" подходом я подразумеваю, например, какой-нибудь компонент, а в WinApi мне скорее всего просто сказали бы, что такого системного события нет.AiK писал(а):Не бывает в природе "чисто дельфийских" (равно как и сишных или же ассемблерных) решений для системных событий. Бывают только обёртки. Впрочем, это уже на оффтоп похоже![]()
Ни что так не ограничивает фантазию программиста, как компилятор...
Вот это должно работать
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;
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;
Подключите модуль 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;
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;
-
- Сообщения: 1
- Зарегистрирован: 23 янв 2010, 13:00
посмотри ....
- Вложения
-
- xnetdetect-demo.zip
- (7.7 КБ) 37 скачиваний