Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/05/2013, 12:53
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 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