Lister tous les lecteurs connectés.

Affiche les lettres des lecteurs connectés.

GetLogicalDrives

Voir version :

Pas de dépendances

Télécharger :

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

int main()
{
    int i;
    unsigned long n = GetLogicalDrives();
    for(i=0;i<26;i++)
        if ((n>>i)&1)
            printf("Trouve lecteur : %c\n",'A'+i);
    return 0;
}



Commentaires


  Ce programme ci va vous permettre de de lister les lecteurs actif sur le PC duquel vous lancez le programme.
  Par exemple, votre PC a un lecteur de disquette A ? un lecteur C, un lecteur D ? 
  Et bien ce programme va vous le dire.

  Lancez le programme, et constatez.

  Tout repose sur la fonction GetLogicalDrives(), tres simple, elle ne prend par de parametres, et renvoie un 
  unsigned long

  Un unsigned long, c'est 32 bits : donc 32 "0" ou "1"
  Or, Windows ne gere que 26 lecteur au maximum (de A à Z)
  Donc on peut ranger, dans 32 bits, 26 bits qui diront si oui ou non le lecteur est branché sur le PC.

  l'analyse est simple, pour chacune des 26 lettres, nous regardons si le bit i est actif ou non.
  S'il l'est, ça veut dire que le lecteur est branché.

  Je vous laisse regarder les tutos sur les bits (dans chapitre G) pour voir les opérateurs >> et &.

  'A'+i permet d'additionner le code ASCII de 'A' avec le nombre i.
  si i = 0 : alors 'A' + 0 = 'A'
  si i = 1 : alors 'A' + 1 = 'B'  car les codes de 'A', 'B', ... sont ordonnés dans la table ASCII.
  etc...