| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Isa1976 Lt Cmdr


Registrado: 23 Nov 2005Mensajes: 104
|
Publicado: Dom 05 Feb, 2006 1:56 pm Asunto: Detectar que alquien ha desconectado el cable de red |
|
|
hola a tod@s
me gustaria saber como detectar que el cable de red de un equipo.
Hay alguna funcion del Buiilder o alguna API que detecte la desconecion al mismo tiempo que sale el cartelito de que no hay conexion en windows?
Gracias |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Lun 06 Feb, 2006 1:29 am Asunto: |
|
|
Generalmente, esto lo realiza windows, y se denomina Media Sense, es una propiedad a partir del windows 2000, en el siguiente enlace pongo algo para detectar la conexion y desconexion de dispositivos,
https://cppbuilder.es/viewtopic.php?t=9872&highlight=cable+red
ya que la forma de detectar, dicha informacion, depende del valor de un mensaje al estilo WM_ pero que por el momento se encuentra protegido. por windows.
espero que te sirva, en dado caso, puedes optar por buscar la informacion dentro de MicroSoft, pero aun yo mismo lo hecho sin tener respuesta de MicroSoft
saludos estamos en contacto... _________________
 |
|
| Volver arriba |
|
 |
Isa1976 Lt Cmdr


Registrado: 23 Nov 2005Mensajes: 104
|
Publicado: Jue 09 Feb, 2006 9:16 am Asunto: |
|
|
Muchas gracias Cesar,
he probado el código y compila bién y todo, lo que ocurre es que al quitar el desconectar el cable de red de la tarjeta de red no pasa nada. El codigo funciona cuando se deshabilita la tarjeta de red no al quitar el cable, que como bien dices son cosas de Media Sense.
Actualmente para saber si tengo conexion con la red en un timer hago ping a mi maquina periodicamente y compruebo que la IP sea válida, por ejmplo que no sea 127.0.0.0
Muchas gracias |
|
| Volver arriba |
|
 |
laremi400 Master

Registrado: 12 May 2004Mensajes: 179
|
Publicado: Vie 10 Feb, 2006 11:31 am Asunto: |
|
|
Igual esto os ayuda, aunque no sé si es muy de fiar.
| Código: |
void __fastcall ExisteUnidad(AnsiString Unidad)
{
char *lpMsgBuf;
char Buffer[3000];
unsigned long Longitud; // pointer to buffer size, in characters
Longitud = sizeof(Buffer);
if(WNetGetConnection(Unidad.c_str(),Buffer,&Longitud) != NO_ERROR)
{
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL);
// Display the string.
MessageBox( NULL, lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
}
else ShowMessage(Buffer);
} |
|
|
| Volver arriba |
|
 |
Isa1976 Lt Cmdr


Registrado: 23 Nov 2005Mensajes: 104
|
Publicado: Mar 14 Feb, 2006 3:08 pm Asunto: |
|
|
hola, muchas gracias pero creo que este codigo no me sirve ya que es para detectar unidades de almacenamiento (tambien en red) pero no es lo que busco
Muchas gracias de todas formas |
|
| Volver arriba |
|
 |
cadejo Cdt


Registrado: 13 Jun 2003Mensajes: 21Ubicación: un rincon cerca del cielo chiapas , mexico ups ahora kansas usa
|
Publicado: Vie 03 Nov, 2006 7:58 pm Asunto: conectado a internet o red |
|
|
HINSTANCE dllInstance = LoadLibrary("url.dll");
bool (__stdcall *InetIsOffline)(int);
InetIsOffline = (bool(__stdcall*)(int))GetProcAddress(dllInstance, "InetIsOffline");
if (InetIsOffline(0))
Application->MessageBox("No esta Conectado a Internet","AVISO",MB_ICONINFORMATION);
else
ShowMessage("Conectado a internet");
FreeLibrary(dllInstance); |
|
| Volver arriba |
|
 |
cadejo Cdt


Registrado: 13 Jun 2003Mensajes: 21Ubicación: un rincon cerca del cielo chiapas , mexico ups ahora kansas usa
|
Publicado: Vie 03 Nov, 2006 8:01 pm Asunto: conoce ip -te servira- |
|
|
#include <winsock2.h>
//Label1 & Label2
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
AnsiString ip;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 2, 0 );
if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
{
Label1->Caption = name;
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(in_addr *)*hostinfo->h_addr_list);
Label2->Caption = ip;
}
}
WSACleanup( );
} |
|
| Volver arriba |
|
 |
_Willa Capt


Registrado: 28 Ago 2002Mensajes: 169Ubicación: Madrid ( España )
|
Publicado: Sab 04 Nov, 2006 4:19 pm Asunto: |
|
|
Buenas,
Solo indicar q en algunas transmisiones se usan algoritmos propios de
comunicación, q permiten a parte de mantener la red activa, tambien
sirven para indicar si el servidor esta vivo o no.
Por Ejem. Enviar cada cierto numero de segundos una trama Tcp al servidor, q este debe responder, y si no lo hace en el tiempo previsto sabremos que la conexión se perdió.
Se pueden aplicar cualquier otro mecanismo de control. _________________ Saludos
~~~~~~~~
_Willa
~~~~~~~~
www.avancegame.com |
|
| Volver arriba |
|
 |
|