Detección de dispositivos

Disculpa la molestia...
Sabes, necesito de tu colaboración pues es que debo realizar una (s) clases en c# para saber todo lo relacionado con los dispositivos (usb, Discos duros) que se encuentren en mi ordenador, trabajo en linux y quisiera saber si me podrías ayudar a realizar este proyecto... En lo que me colabares te lo agradecería enteramente.. Mi problema es que no se por donde empezar... Es que solo se lo básico en c# osea clases sencillas pero hasta este ese punto se me ha complicado algo...

1 respuesta

Respuesta
1
Lo que yo haría es lo siguiente
1) En mi clase crearme enumeradores para saber el tipo de unidad, los valores de la lista son fijos la api siempre te muestra esos valores para ese tipo de unidad
public enum TipoUnidad : int
    {
       Desconocido,    // 0 DRIVE_UNKNOWN       The drive type cannot be determined.
        No_montado,     // 1 DRIVE_NO_ROOT_DIR   The root path is invalid;
        // For example, there is no volume mounted at the path.
        Extraible,      // 2 DRIVE_REMOVABLE     The drive has removable media;
        // For example, a floppy drive or flash card reader.
        //                                       Las llaves USB los da como extraibles.
        Fijo,           // 3 DRIVE_FIXED         The drive has fixed media;
        // For example, a hard drive, flash drive, or thumb drive.
        // Los discos duros normales enchufados por USB son fijos.
        Remoto, // 4 DRIVE_REMOTE The drive is a remote (network) drive.
        CDROM, // 5 DRIVE_CDROM The drive is a CD-ROM drive.
        RAMDISK, // 6 DRIVE_RAMDISK The drive is a RAM disk.     }
2) Luego hay que gocer la dll del kernel (ojo en, linux tienes que buscar el equivalente)
//Nos devuelve el tipo de unidad de acuerdo al nombre de la unidad
[DllImport("kernel32.dll")]
    private extern TipoUnidades GetDriveType(string nDrive);
//Obtener cantidad de todas la unidades, para barrer en for, para dentro del for ir obteniendo cada unidad obtenidas en una variable string[] mediante el environment
[DllImport("kernel32.dll")]
    private extern int GetLogicalDrives();
3)Obtener los drivers mediante la clase environment, nos devuelve en un arreglo de string las letras de las unidades
string[] drives = Environment.GetLogicalDrives();
Bueno mi amigo eso seria todo, con eso ya podrías implementar métodos en tu clase que te vayan desplegando la información que necesites.
Ahh por cierto los anteriores puntos no son tan importantes, basta con el tercer punto ese es laclase que te obtienen las unidades de la maquina
De antemano te doy las gracias por tu colaboración...
Sabes no lo he probado así... pues ando trabajando en monodevelop usando la librería gtk... pero lo itentare de esa forma que me indicas...
Sabes me gustaría que pues me guiaras en esta ocasión pues soy algo nuevo en c# y pues trabajando con mono pues es algoo nuevo aunque he trabajado en java y delphi pues c# maneja java, C y C++ ... si manejas el tema claro esta...!
Seria de gran ayuda contar con alguien como tu...
Gracias nuevamente...
Acá te dejo mi correo por si pues decides ayudarme un poquito más...
(xxxxxx)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas