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 :

WMI recherche d'info


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre éclairé Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Par défaut WMI recherche d'info
    Bonjour,

    Je débute avec WMI, j'arrive à obtenir des infos mais comme je n'ai pas tout ce que je veux mais je cherche

    Ce que je cherche (et ne trouve pas) c'est ou trouver les phrases type comme
    SELECT * FROM WIN32_LOGICALDISK WHERE NAME="C:"
    par exemple et y en a d'autres (j'en ai vu dans la FAQ)

    Connaître la différence entre "WMILocator:= CoSWbemLocator.Create();" et "WMILocator:= TSWbemLocator.Create(self);" et s'il y en a d'autre et pourquoi celui la plus qu'un autre

    C'est plus de la doc que du code dont j'ai besoin

    Par avance merci, pour l'instant ça me fais plus cette effet heu celui du bas pas celui qui tape


    Désolé il manque des procedure / fonction. Mais sont dispo si vous les voulez

    Info sur mon PC
    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
    var  wmiObjectSet:        ISWbemObjectSet;
         Value:               Cardinal;
         SObject:             ISWbemObject;
         ArrayVariant :       OleVariant;
         ObjectEnumerator :   IEnumVariant;
    begin
      try
        wmiObjectSet := connectionI.ExecQuery('SELECT * FROM WIN32_LOGICALDISK WHERE NAME="C:"','WQL',     // <==== ici la lettre du lecteur
                                              wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
        ObjectEnumerator :=  (wmiObjectSet._NewEnum) as IEnumVariant;
        if (ObjectEnumerator.Next(1, ArrayVariant, Value) = S_OK) then                // un objet trouvé ?
           begin
             SObject :=IUnknown(ArrayVariant) as ISWBemObject;
             if (SObject <> nil) then
                begin                                                                // SObject.Properties_;
                  Memo1.Lines.Add(SObject.GetObjectText_(0));                        // Acceder aux propriétés
                  Memo1.Lines.Add(WMILecture(SObject.GetObjectText_(0),'Caption'));
                end;
           end;
      except
        //Result:='';
      end;
    Info sur un lecteur
    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
    Var wmiObjectSet:        SWbemObjectSet;
        ObjectEnumerator:    IEnumVariant;
        ArrayVariant:        OleVariant;
        WmiObject:           SWBemObject;
        NumberItem:          LongWord;
    begin
      wmiObjectSet := connectionT.InstancesOf('Win32_OperatingSystem',               //wmiService:=connection;
                                                             wbemFlagReturnWhenComplete,Nil);
      ObjectEnumerator:= (WmiObjectSet._NewEnum) as IEnumVariant;
      while (ObjectEnumerator.Next(1, ArrayVariant, NumberItem) = S_OK) do
             begin
               WmiObject := IUnknown(ArrayVariant) as SWBemObject;                   // Récupére de la collection l'objet SWbemObject courant
               Memo1.Lines.Add(AdjustLineBreaks(wmiObject.GetObjectText_(0)));       // Retrouve la propriétés de l'instance au format MOF .
             end;
      label1.Caption:='nom : '+wmilecture(wmiObject.GetObjectText_(0),'caption');
     
       //AdjustLineBreaks((wmiObject.path as SWbemObjectPath ).relpath);
    end;

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 573
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Oui WMI fait cet effet à beaucoup la faute à MS Qui semble avoir une maxime "pourquoi faire simple quand on peut faire compliqué"

    Ayant pas mal galéré sur le sujet (il y a un an ou deux a propos d'éjection de clés/disque USB, à rechercher sur le forum section API) je me rappelle que la plupart de la doc , je la trouvais en premier chez Microsoft (bon évidemment pas de bouts de code Delphi , mais VB et/ou C++).
    Un programme trouvé sur le net m'avais beaucoup aidé aussi , il permettait de tester les WQL (WMI SQL) par contre je ne retrouve pas le lien
    [Edit] à défaut il y a une pépite qui devrait aider wmi-delphi-code-creator

  3. #3
    Membre éclairé Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Par défaut
    ok merci de me confirmer que pour toi aussi c'est ça ne me rassure pas mais ça me réconforte quand même

    Je vais chercher alors désespérément

    Merci

Discussions similaires

  1. [Débutant] Recherche des infos concernant JTREE
    Par badack dans le forum Composants
    Réponses: 4
    Dernier message: 24/08/2006, 06h54
  2. recherche d'info dans des classeurs fermé
    Par gerald57 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/08/2006, 19h04
  3. Recherche d'info dans une base
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/08/2006, 16h08
  4. Réponses: 5
    Dernier message: 27/03/2006, 23h24
  5. [FLASH] comment rechercher l'info dans un XML
    Par hatice83 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/12/2005, 11h57

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