Fórum Verificar se Internete está conectada #337665

10/02/2007

0

Preciso ver se o usuário está com a internet conectada. Tentei as seguinte funções:

**********
function InternetConectada : boolean;
Var
ConnectedState : DWord;
begin
InternetGetConnectedState(@ConnectedState, 0);
if (INTERNET_CONNECTION_LAN and ConnectedState = INTERNET_CONNECTION_LAN) or
(INTERNET_CONNECTION_MODEM and ConnectedState = INTERNET_CONNECTION_MODEM) or
(INTERNET_CONNECTION_PROXY and ConnectedState = INTERNET_CONNECTION_PROXY) then
Result := True
else
Result := False;
end;

e

if InternetGetConnectedState(@flags, 0) then
ShowMessage(´Internet conectada´);

***********
O problema é que, mesmo que não exista conexão com a internet, o resutado é sempre true.

Faço o seguinte teste: no meu laboratório de testes tenho um modem roteador para conexão à internet. Primeiro faço o teste com tudo ligado. Depois tiro o cabo do modem do roteador, ou seja, desligo o sinal ADSL. Porém, executando as rotinas, ambas retornam true, quando deveriam retornar false.

Alguém sabe por que isso ocorre?
Existe alguma outra forma de fazer o que preciso?

Obrigado.


Armindo

Armindo

Responder

Posts

12/02/2007

Nightshade

utilize o TIdIPWatch da palheta indy..
dai no evento dele de onStatusChanged coloke

procedure TFrmMain.iIdIPWatch1StatusChanged(Sender: TObject);
begin
if (IdIPWatch1.IsOnline) then
begin
showmessage(´conectado´);
end;
end;

se vc tiver algum adaptador de rede ativo, ele deduzira que vc esta conectado a internet, pois ele nao verifica a conexao http, e sim sua placa de rede..

n precisa nem por timer nesse componente

[]´s


Responder

Gostei + 0

12/02/2007

Armindo

utilize o TIdIPWatch da palheta indy.. dai no evento dele de onStatusChanged coloke procedure TFrmMain.iIdIPWatch1StatusChanged(Sender: TObject); begin if (IdIPWatch1.IsOnline) then begin showmessage(´conectado´); end; end; se vc tiver algum adaptador de rede ativo, ele deduzira que vc esta conectado a internet, pois ele nao verifica a conexao http, e sim sua placa de rede.. n precisa nem por timer nesse componente []´s


Obrigado, mas não resolve. Esse componente faz a mesma coisa que as funções que citei na abertura do tópico, ou seja, independentemente se há ou não conexão com a intenet, o retorno é sempre true enquanto houver uma conexão de rede ativa.

Obrigado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar