PDA

Ver la Versión Completa : Lanzar aplicacion al detectar conexion a internet


Delphius
30-01-2005, 19:46:20
Mi pregunta es simple: ¿Es posible hacer que mi aplicación se ejecute cuando se detecte una conexión a internet?

roman
30-01-2005, 19:50:44
¿Cuando quién detecte la conexión?

Supongo que podrías instalar un servicio que cheque periódicamente la conexión y cuando la detecta lanzar la aplicación principal.

// Saludos

Delphius
30-01-2005, 19:58:50
Me explique mal. Tengo desarrollado un contador que me lleva la cuenta de cuanto tiempo se lleva de conexión, y el monto correspondiente. Quisiera hacer que mi programa se ejecute (no se encuentra activo en ningún momento) cuando se haya concretado una conexión, en vez de hacerlo manualmente. Es decir que cuando se inicie la conexión... se ejecute de forma automática mi aplicación.:confused:

roman
30-01-2005, 20:02:27
(no se encuentra activo en ningún momento)


Precisamente por esto es que preguntaba, ¿quién va a detectar la conexión?

A no ser que Windows traiga alguna utilidad para ejecutar tareas una vez que se realice una conexión, de fuerza requieres un código que lo haga. Por ello te hablo de un servicio o una aplicación sin ventanas que lo único que haga sea usar un Timer para checar si hay o no una conexión. Cuando lo haga, ejecuta la aplicación que estaba inactiva.

// Saludos

Delphius
30-01-2005, 20:09:13
Si entiendo lo que dices...
Quería evitarme hacer que sea mi aplicación (u otra) la que detecte la conexión... estuve buscando si había alguna API que me ayudara a resolver eso, pero no encontré nada hasta el momento.
Po ahora, es mi aplicación la que inicia la cuenta cuando se detecta la conexión.

argami
02-02-2005, 15:01:09
intenta usar esta api

RasGetProjectionInfo

con ella puede obtener mucha informacion de las conecciones RAS (Remote Acces Service)
en la ayuda en el SDK Win 32 DEvelopers references tienes mas informacion

yo no la he usado pero e spero que te ayude

Delphius
12-02-2005, 05:48:32
Gracias por info argami..
me voy a poner a investigar de ello.

roman
12-02-2005, 20:47:59
Quería evitarme hacer que sea mi aplicación (u otra) la que detecte la conexión... estuve buscando si había alguna API que me ayudara a resolver eso, pero no encontré nada hasta el momento.

Pero una Api como dices tiene que ejecutarla algún código! Ya sea la que te propone argami o cualquier otro método para detectar la conexión a Internet tiene que ejecutarse en alguna parte.

Sinceramente creo que te está confundiendo (o yo estoy confundiendo :) ). Una cosa es el código (API u otra cosa) para detectar la conexión a Internet y otra cosa es ejecutar este código.

Forzosamente "algo" tiene que estar a la espera de la conexión y ese "algo" tiene que ser una aplicación o servicio.

// Saludos

argami
14-02-2005, 15:21:11
Lamento si mi idea confunde a alguien, la verdad no lo he hecho con esa intencion, pero sin duda que roman tiene razon con lo que dice.

no especifique el echo de la necesidad de un timer o un Hilo por creer que quedaba sobre entendido que hacia falta, mas bien solo referi un api que puede servir para detectar cuando esta abierta una conexion.

Mis sinceras disculpas si esto ha hecho perder tiempo a alguien

roman
14-02-2005, 17:42:46
no especifique el echo de la necesidad de un timer o un Hilo por creer que quedaba sobre entendido que hacia falta


No te preocupes argami, mi insistencia va dirigida a Delphius quien me parece que aún no tiene claro esto que indicas.

// Saludos

Delphius
16-02-2005, 03:39:17
Roman si entiendo lo que dices... si o si tiene que haber "algo" activo para que lanze mi aplicación.
Me resultó (hasta el momento) más fácil usar un timer para que cada 1 segundo cheque si está conectado y si realmente lo está empieza a cronometrar. Si la conexión se interrumpe... se detiene.

JOSEPE
16-02-2005, 17:07:33
Alguan vez encontre una funcion windows llamada mediante una Callback para detectar si habia una conexion a INTERNET, la verdad que la perdi, UDs., al parecer sabe como hacerlo me pueden indicar cual es esa funcion o como lo hacen Uds.

Salu2

JOSEPE
Lima-Peru

roman
16-02-2005, 17:22:24
Hablando de cosas que alguna vez hemos visto y no recordamos donde :rolleyes: menciono que recuerdo haber leído en alguna parte que la única manera verdaderamente confiable para detectar si existe una conexión a Internet es haciendo un ping a una dirección que sepamos a ciencia cierta que está activa. Si no obtenemos respuesta es que no hay conexión.

// Saludos

argami
16-02-2005, 21:29:45
es verdad pero eso tiene un problema que tienes que estar seguro que a largo plazo esa direccion estara activa

JOSEPE
16-02-2005, 22:16:43
Para los que necesiten detectar Internet.


function IsConnected: Boolean;
var
ConnectedState: Integer;
begin
ConnectedState := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@ConnectedState, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if IsConnected = False then Panel1.Caption :='You are not connected to internet'
else
panel1.Caption :='You are connected to internet';
end;

JoseQ
30-03-2005, 12:23:07
k unidades hacen falta para ejecutar esa funcion ?

roman
30-03-2005, 15:43:59
k unidades hacen falta para ejecutar esa funcion ?

¿Te refieres a InternetGetConnectedState? Pues me parece que está en la unidad WinInet?

// Saludos