Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Solucion al tema de saber si estoy o no conectado a internet (https://www.clubdelphi.com/foros/showthread.php?t=11089)

jorch_yr 04-06-2004 23:13:36

Solucion al tema de saber si estoy o no conectado a internet
 
HOLA A TODOS!!!

Este hilo trata de explicar bien como se hace para detectar si se esta o no conectado a internet. Ya e visto muchos mensajes preguntado lo mismo y gente que tiene problemas porque no les funciona el codigo poruqe les dice que esta conectados cuando no lo estas o por otra rason.

Bueno aca les va el codigo:
Código Delphi [-]
uses WinInet;

procedure TForm1.Button1Click(Sender: TObject);
var conectado:boolean;
begin
conectado:= internetgetconnectedstate(0,0);
label1.Visible:=true;

if conectado then
begin
label1.Caption:='SI';
end
else
begin
label1.Caption:='NO';
end;
end;

Bien haora si no les funciona correctamente es por lo siguiente:
NO TIENE CONFIGURADO EL INTERNET ESPLORER PARA QUE MARQUE LA CONEXION PREDETERMINADA. para activarla tien que hacer los suiguente:
1) Ir al menu herramientas
2) Click en Opciones de internet
3) Ir a la solapa conexion
4) Selecionar "Marca siempre la conexion predeterminada"

Otra forma de hacer lo mismo es atraves del regristro de windows: Inicio -> Ejecutar : regedit
luego bayan a la clave: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings y cabien el valor de EnableAutodial a 0X00000001 (osea a 1)

Tb. lo pueden hacer desde delphi asi:
Código Delphi [-]
uses registry;

var
 Registro : Tregestry;
begin
     Registro := TRegistry.Create;
    Registro.RootKey := HKEY_CURRENT_USER;
    if Registro.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings', False) then
       begin
       Registro.WriteInteger('EnableAutodial',1);
       Registro.CloseKey;
       Registro.Destroy;
       end;
end;

Bien creo que no hay perdida y que esta todo explicado tb espero aver solucionada las dudas de muchos y que les sirva de ayuda.
En muchas ocaciones que se pregunto eto y se repodio con este codigo a algunos no les funciono porque no tenian configurado el internet explorer.
Probado en: Win98 y XP con coneccion ADSL y Dial-UP y creo (no estoy seguro) que funciona tb cuando se compare el internet en una red si aguien save si funciona que me abise por este hilo.

Saludos

JoRcH YR

JCR 05-06-2004 06:09:17

Hey! Muchas gracias, hacía un monton que estaba buscando esto. Ya había probado dos o tres codigos pero ninguno funcionaba, este funciona a la perfeccion.

MAXIUM 10-09-2008 04:54:33

Vaya, por fin un método que funciona y de pasada confirmo que estos conectado a un Switch.

Cita:

InternetGetConnectedState: a partir de IE 4 se nos ofrece esta función que nos permite distinguir configuraciones típicas como conexión por módem o conexión vía LAN, aunque no gestiona bien configuraciones complejas como LAN + router con auto-marcado. Además, esta función es capaz de retornarnos el valor de la bandera "Trabajar sin conexión".
Debería estar en trucos y reemplazar los que tienen y no funciona.

MAXIUM 02-10-2008 01:02:02

Tambien hay que modificar la clave: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings y cambien el valor de NoNetAutodial a 0X00000000 (osea a 0)

Código Delphi [-]
uses registry;

var
 Registro : Tregistry;
begin
     Registro := TRegistry.Create;
     Registro.RootKey := HKEY_CURRENT_USER;
     if Registro.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings', False) then
       begin
       Registro.WriteInteger('EnableAutodial',1);
       Registro.WriteInteger('NoNetAutodial',0);
       Registro.CloseKey;
       Registro.Free;
       end;
end;

jt.logosoft 26-10-2008 12:32:53

Otro aporte
 
Hola! gracias por los aportes, a mí me funcionó con una variante: modifiqué el último procedimiento así
Código Delphi [-]
var
 Registro : TRegistry;
begin
     Registro := TRegistry.Create;
     Registro.RootKey := HKEY_CURRENT_USER;
     if Registro.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings', False) then
       begin
       Registro.WriteInteger('EnableAutodial',1);
       Registro.WriteInteger('NoNetAutodial',1);
       Registro.CloseKey;
       Registro.Free;
       end;

end;
Aclaro que estoy en una red local, mi conexión a Internet es por cable y compartida. Estoy detrás de un switch y un router.


La franja horaria es GMT +2. Ahora son las 18:49:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi