Partage
  • Partager sur Facebook
  • Partager sur Twitter

Disque dur

Detecter sa présence

    16 avril 2007 à 12:01:50

    Bonjour
    J'aimerai savoir s'il est possible de dectecter la présence d'un lecteur de disque en fonction de sa lettre et savoir si c'est bien un Disque Dur
    Exemple :
    dectecter la présence du lecteur portant la lettre C, D ... (toutes les lettres enfait)
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      16 avril 2007 à 12:51:03

      C'est pas le bon forum (t'as du confondre disque dur C avec language C...).

      Sinon, normalement tu vois ça dans le poste de travail, et normalement tout les disques nommés Disque Local sont des disques durs.
      • Partager sur Facebook
      • Partager sur Twitter
        16 avril 2007 à 15:12:26



        #include <windows.h>
        #include <stdio.h>

        int main(void)
        {
          char i, buf[128];
         
          for(i = 'A'; i <= 'Z'; i++) {
            sprintf(buf, "%c:\\", i);

            switch(GetDriveType(buf)) {
              case DRIVE_REMOVABLE:strcat(buf, "\tREMOVABLE"); break;
              case DRIVE_FIXED:    strcat(buf, "\tFIXED");     break;
              case DRIVE_REMOTE:   strcat(buf, "\tREMOTE");    break;
              case DRIVE_CDROM:    strcat(buf, "\tCD-ROM");    break;
              case DRIVE_RAMDISK:  strcat(buf, "\tRAMDISK");   break;
              default: buf[0] = 0;
            }
            if(strlen(buf)) printf("%s\n", buf);
          }
          return 0
        }

        • Partager sur Facebook
        • Partager sur Twitter
          16 avril 2007 à 15:23:00

          Citation : magma



          #include <windows.h>
          #include <stdio.h>

          int main(void)
          {
            unsigned int x;
            char i, buf[64];
           
            for(i = 'A'; i <= 'Z'; i++) {
              sprintf(buf, "%c:\\", i);
              x = GetDriveType(buf);

              switch(x) {
                case DRIVE_REMOVABLE:strcat(buf, "\tREMOVABLE"); break;
                case DRIVE_FIXED:    strcat(buf, "\tFIXED");     break;
                case DRIVE_REMOTE:   strcat(buf, "\tREMOTE");    break;
                case DRIVE_CDROM:    strcat(buf, "\tCD-ROM");    break;
                case DRIVE_RAMDISK:  strcat(buf, "\tRAMDISK");   break;
                default: buf[0] = 0;
              }
              if(strlen(buf)) printf("%s\n", buf);
            }
            return 0
          }

          Yo
          C:\     FIXED
          D:\     FIXED
          E:\     FIXED

          Press ENTER to continue.

          J'ai mis ma clé USB et :

          C:\     FIXED
          D:\     FIXED
          E:\     FIXED
          F:\     REMOVABLE

          Press ENTER to continue.

          Trop cool...
          • Partager sur Facebook
          • Partager sur Twitter
          Music only !
            16 avril 2007 à 15:32:20

            mais loool :lol:
            ouai donc pour faire ce que tu as à faire c'est avec l'api windows encore et toujours... (ou des appels noyau)
            voilas donc le code qui t'as filé sa veut dire ça en gros:
            #include <windows.h>
            #include <stdio.h>
            /*il inclut l'api.*/

            int main(void)
            {
              unsigned int x;
              char i, buf[64];
             
              for(i = 'A'; i <= 'Z'; i++) {
                sprintf(buf, "%c:\\", i);
                x = GetDriveType(buf); /*<-il appels une fonction de l'api qui va retourner un numéro qui sera le type de périphérique mémoire que tu as et qui va modifier un tableau de caractère pour pouvoir stocker la lettre du périphérique lu.*/
                switch(x) {
                  case DRIVE_REMOVABLE:strcat(buf, "\tREMOVABLE"); break;
                  case DRIVE_FIXED:    strcat(buf, "\tFIXED");     break;
                  case DRIVE_REMOTE:   strcat(buf, "\tREMOTE");    break;
                  case DRIVE_CDROM:    strcat(buf, "\tCD-ROM");    break;
                  case DRIVE_RAMDISK:  strcat(buf, "\tRAMDISK");   break;
                  default: buf[0] = 0;
                }
            /*Il utilise des défines de l'api pour connaitre le type de périphérie.Mais le plus interressant c'est qu'il compare ce que lui à retourner la fonction getdrivetype (un nombre) avec ces défines, qui sont en faite des sorte de variable (gérer par le prépo) qui contienent un numéro, elle ont un nom juste pour que le codeur ce comprenne dans sont code.C'est donc un numéro est qui comparé avec le numéro que lui à retourner la fonction... une fois que le numero retourner est égal au numéro situer dans le swith il va concaténer le type (là il reprend le nom de la défine représentant le type) avec la lettre du truc en question là... et voilas c'est merveilleux j'ui capoute X_x j'explique un peu trop mal....mais je me comprend.*/
                if(strlen(buf)) printf("%s\n", buf); /*et la il affiche ce qu'il à concaténé*/
              }
              return 0;
            }
            • Partager sur Facebook
            • Partager sur Twitter

            Disque dur

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown