IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Lecteurs Cd et disques


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 16
    Par défaut Lecteurs Cd et disques
    Salut à tous , j'ai développez une application qui me permet de faire l'inventaire automatique des ressources de PC. Seulement à l'exécution le scannage au niveau des lecteurs disquettes et cd engendre un bruit désagrable. Est -il possible de realiser le scannge sans bruit avec du code bien sûr? Aider moi s'il vous plait.

  2. #2
    Membre chevronné
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Par défaut
    Que veux tu dires par "bruit"?
    Comment procedes tu pour ton scan?
    Soit un peu plus explicite, c'est dur de trouver une solution avec si peu de renseignements.

  3. #3
    Membre averti
    Inscrit en
    Février 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 16
    Par défaut Lecteur disquette et Cd
    Au fait j'utilise WMI pour Scanner le Pc en exemple voici une fonction me permettant de recuperer les infomations sur les diques logiques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    function info_disques_logiques: TStringList;
     var
      l_WMILocator:          ISWbemLocator;    // Locator, gets Services
      l_WMIServices:        ISWbemServices;    // Services, gets Object Definitions
     
      l_WMIObjectSet:        SWbemObjectSet;    // ObjectSet, gets Enum over Instances
      l_WMIObjectInstances:  IEnumVariant;      // Enum of Instances, gets Object
      l_WMIObject:          ISWbemObject;      // Object, gets Sets of his properties
      l_WMIPropertySet:      ISWbemPropertySet; // PropertySet, gets single property
      l_WMIProperty:        ISWbemProperty;    // Property, gets Value
      l_TempObj:            oleVariant;        // temporary used values
      l_ObjValue:            Cardinal;
       sValue:string;
      count,code:integer;
      tampon,tampon1:real;
      longueur:byte;
    begin
         result := TStringList.Create;
      // retrieve object enum through WMI classes
      l_WMILocator := CoSWbemLocator.Create;
      l_WMIServices := L_WMILocator.ConnectServer('', 'root\cimv2', '', '', '', '',wbemConnectFlagUseMaxWait, nil);
      l_WMIObjectSet:= l_WMIServices.ExecQuery('SELECT * FROM Win32_LogicalDisk', 'WQL',
        wbemFlagReturnImmediately or wbemFlagForwardOnly , nil);
      l_WMIObjectInstances := (l_WMIObjectSet._NewEnum) as IEnumVariant;
      //iterate through enum values (WbemObjects) and get the property values
      while (l_WMIObjectInstances.Next(1, l_TempObj, l_ObjValue) = S_OK) do
      begin
          l_WMIObject:= IUnknown(l_TempObj) as SWBemObject;
          l_WMIPropertySet := l_WMIObject.Properties_;
     
         l_WMIProperty := l_WMIPropertySet.Item('DeviceID', 0);
         if not VarIsNull(l_WMIProperty.Get_Value) then
          begin
              sValue:=l_WMIProperty.Get_Value;
              result.Append(sValue);
          end
          else
             result.Append('');
     
           l_WMIProperty := l_WMIPropertySet.Item('Drivetype', 0);
         if not VarIsNull(l_WMIProperty.Get_Value) then
          begin
              sValue:=l_WMIProperty.Get_Value;
              val(svalue,count,code);
              case count of
                  2 :svalue:='Disque amovible' ;
                  3 :svalue:='Disque local' ;
                  4 :svalue:='Repertoire reseau';
                  5 :svalue:='Lecteur disque';
              end;
              result.Append(sValue);
          end
          else
             result.Append('');
     
           l_WMIProperty := l_WMIPropertySet.Item('FileSystem', 0);
          if not VarIsNull(l_WMIProperty.Get_Value) then
          begin
              sValue:=l_WMIProperty.Get_Value;
              result.Append(sValue);
          end
          else
             result.Append('');
         l_WMIProperty := l_WMIPropertySet.Item('FreeSpace', 0);
         if not VarIsNull(l_WMIProperty.Get_Value) then
          begin
              sValue:=l_WMIProperty.Get_Value;
              result.Append(sValue);
          end
          else
             result.Append('');
     l_WMIProperty := l_WMIPropertySet.Item('size', 0);
     if not VarIsNull(l_WMIProperty.Get_Value) then
          begin
              sValue:=l_WMIProperty.Get_Value;
              result.Append(sValue);
          end
          else
             result.Append('');
    end;
    end;
    J'appelle après cette fonction c'est en ce moment que ce produit le bruit.
    ___________________________________
    Balises code rajoutées par Lil_jam63

  4. #4
    Membre averti
    Inscrit en
    Février 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 16
    Par défaut Lecteurs disquette et CD
    le bruit est semblable à ce qui se prduit lorqu'on insere une disquette dans le lecteur et que ce dernier n'arrive pas à le lire. Ce bruit tanttôt fort sur certain Pc ou je tente mon code et assez faible sur d'autre. merci de m'aider à réaliser un scannage sans bruit remarquable de la part de l'utilisateur de l'application.

  5. #5
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Par défaut
    Le bruit est relatif au matériel et je ne vois pas comment une fonction pourrait le réduire. A moins quand partant de l hypothse que moins cela va vite , moins il y a de bruit ... tu pourrais chercher une fonction qui permet de limiter le débit. Mais vu que ton application ne transfert pas de grosse quantité de données je pense que cela serait inutile.

  6. #6
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Si, si il y a moyen, il faudrait que je retrouve mon code pour la détection de lecteur de disquette.

    Tous les codes que j'ai pu voir font "Gratter" le lecteur de disquette. Mais en fait il y a moyen de ne pas le faire "Gratter" !

Discussions similaires

  1. [WD16] lecteur d'un disque secteur par secteur
    Par jlouis45170 dans le forum WinDev
    Réponses: 1
    Dernier message: 28/08/2012, 08h01
  2. comment créer un lecteur réseau, disque dur virtuel ?
    Par FFF dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 15/03/2006, 09h40
  3. disque SATA reconnu en lecteur de disque
    Par netah25 dans le forum Windows XP
    Réponses: 2
    Dernier message: 31/10/2005, 15h37
  4. Comment déterminer l'espace disque de tous les lecteurs
    Par ZeKudjat dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/01/2005, 15h19
  5. Réponses: 3
    Dernier message: 28/01/2004, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo