Foros del Web » Programación para mayores de 30 ;) » C/C++ »

¿Como se hace escaneo de puertos usb en c++ para multiplataforma?

Estas en el tema de ¿Como se hace escaneo de puertos usb en c++ para multiplataforma? en el foro de C/C++ en Foros del Web. Lo que pasa es que me dejaron un trabajo en el que se necesita una llave USB con un archivo con una clave dentro, y ...
  #1 (permalink)  
Antiguo 23/05/2013, 16:58
Avatar de androide_2999  
Fecha de Ingreso: enero-2012
Ubicación: en todos lados
Mensajes: 12
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta ¿Como se hace escaneo de puertos usb en c++ para multiplataforma?

Lo que pasa es que me dejaron un trabajo en el que se necesita una llave USB con un archivo con una clave dentro, y se tiene que revisar cada 5 minutos que hay una usb conectada y que tenga el archivo con la clave correcta para que el programa funcione.


¿Alguna idea de como hacer la parte para escanear los puertos usb?
  #2 (permalink)  
Antiguo 24/05/2013, 12:53
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 2 meses
Puntos: 83
Respuesta: ¿Como se hace escaneo de puertos usb en c++ para multiplataforma?

Creo que no puedes hacerlo portable, tal vez alguna libreria implemente las funciones de varios s.o.; te pongo un ejemplo rapido solo para windows:

Código:
//requiere windows.h

void scan_in_drives(unsigned int type) {
	char *drives;
	
	drives = malloc(1024);
	memset(drives, 0, 1024);
	GetLogicalDriveStrings(1024, drives);

	while(strlen(drives)) {
		if(GetDriveType(drives) == type) {
			//ya tienes la letra de la unidad extraible
		}
		drives += (strlen(drives)+1);
	}
	
	free(drives);
}


//la llamada seria para buscar unidades no fijas
scan_in_drives(DRIVE_REMOVABLE);
Una vez tengas la letra de a unidad del tipo esperado, solo has de listar los archivos o si sabes que siempre será un nombre contreto solo has de intentar acceder a ese (en caso de error sigues buscando unidades, en caso de exito finalizas el bucle). No he usado ninguna comprovacion de error, deberian implementars todas las necesarias.

Para escanear cada 5 minutos puedes usar un temporizador, o puedes añadir tu aplicacion a un sheduler.

Saludos
vosk

Etiquetas: c++, llave, usb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:49.