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

Windows Discussion :

[API] Connaître la température du PC [Archives]


Sujet :

Windows

  1. #1
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut [API] Connaître la température du PC
    Bonjour à tous,

    je me demandais s'il y avit des API qui permettaient de connaître la température du PC. Je suppose que oui, parce que quand je vais dans le Bios, j'ai la température... Donc quelle API permet cela? Ou, s'il n'y en a pas, comment faire?

    Merci d'avance pour votre aide...

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    ne connaissant pas le probléme mais étant curieux, je me suis penché un peu dessus .

    Donc voici qq liens :

    http://www.phoenix.com/resources/userman.pdf?BTNSEARCH.X=8\&BTNSEARCH.Y=2#Page=43

    http://www.phoenix.com/resources/userman.pdf?BTNSEARCH.X=8\&BTNSEARCH.Y=2#Page=35

    http://www.dmtf.org

    http://www.dmtf.org/standards/documents/SMBIOS/DSP0134.pdf

    L'utilisation des 'API' SMBIOS semble répondre à ta question.
    Mais prévois qq journées d'occupation
    A+
    Laurent Dardenne

  3. #3
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Euh... 93 pages pour le PDF, je ne sais pas combien pour les autres liens, et le tout en anglais C'est aussi compliqué que ça, Parce que là j'ai rien compris

    Merci pour tous ces liens, mais je débute en programmation, alors je souhaiterai trouver quelque chose d'un peu plus simple, si quelqu'un connaît, ou bien un résumé de tout ça...

    Merci d'avance

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    c'est un début de solution, parfois pour aller plus loin il faut aller plus prés .
    Ce n'est pas trés 'compliqué' faut juste travailler le sujet.
    C'est un projet intéressant pour un débutant, les forums peuvent t'aider au cas ou.

    A+
    Laurent Dardenne

  5. #5
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Je ne comprend pas trop le lien, et je n'arrive pas à trouver l'API GetDMIInfos dans mon aide, et le lien fournit sur le site est mort. Vous ne pourriez pas m'expliquer un peu plus, et si possible me donner un exemple de code très très simple si possible?

    Je sais, je suis chiant, mais je débute...

  6. #6
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    De plus, je commence à comprendre les API SMBios, ou GetDMIBios, mais je n'arrive pas à les utiliser sous Windev7... Existent-elles sous Windev?

  7. #7
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Mon prog n'est pas fait parce que j'ai pas le temps, mais je mets le tag gràce à ca.

    Merci à tous!

  8. #8
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    ton lien est bien, mais pour moi, cest pas une API SMBIOS.
    c'est une class de WMI. qui justement permet d'avoir de nombreuses informations sans connaitres les API par coeur.

    regarde le tuto WMI sur les cours .net, très bien fait
    et il te permettra d'utiliser tres rapidement l'info de la MSDN.

    par contre, il ne te sortira pas forcement des resultats, autant pour les trucs basiques (vitesse processseurs, numero de serie, etc) ca marche a tous les coups, autant pour les sensors... mais faut tester

  9. #9
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    je viens de découvrir WMI et effectivement cela permet de récupérer beaucoup d'infos coté systéme et administration.

    http://dotnet.developpez.com/tutoriels/wmi1/

    MSDN
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_start_page.asp

    ici un tutorial en anglais
    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=720F0CAE-64A7-457F-BB95-E4F33E0CBC55

    qq outils
    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6430F853-1120-48DB-8CC5-F2ABDC3ED314
    A+

    Peux tu importer des librairies de type avec Windev ?
    Fichier à importer sous XP :
    C:\WINDOWS\system32\wbem\wbemdisp.tlb

  10. #10
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    euh pourquoi tu veux importer une dll wbem sous xp??? depuis windows 2k tout est deja mis. la couche WMI et les outils sont deja utilisables tel quels


    sauf peut etre si tu as besoin de toi meme specifié des nouvelles classes dans le CIM mais c'est bien bordel et meme ce que dit la doc, tout ne marche pas encore vraiment

  11. #11
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par pharaonix
    euh pourquoi tu veux importer une dll wbem sous xp???
    J'ai oublié de préciser librairie de type.
    Sous Delphi je dois importer cette librairie afin de récupérer les déclarations des interfaces ( COM ):
    IWbemlocator, IWbemServices, IWbemClassObject ...

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      ISWbemServices = interface(IDispatch)
        ['{76A6415C-CB41-11D1-8B02-00600806D9B6}']
        function  Get(const strObjectPath: WideString; iFlags: Integer; 
                      const objWbemNamedValueSet: IDispatch): ISWbemObject; safecall;
        procedure GetAsync(const objWbemSink: IDispatch; const strObjectPath: WideString; 
                           iFlags: Integer; const objWbemNamedValueSet: IDispatch; 
                           const objWbemAsyncContext: IDispatch); safecall;
    Ne connaissant pas Windev, l'avertir sur ce point me semble judicieux.

    Citation Envoyé par pharaonix
    sauf peut etre si tu as besoin de toi meme specifié des nouvelles classes dans le CIM ...
    De mon coté, et dans un premier je vais rester humble.
    La simple interrogation me suffit.

  12. #12
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    tu restes humble mais moi je me la pete, et j'essais et au bout de 2 lignes, je me rend compte compte que ce n'est pas de mon niveau, alors je retourne m'asseoir à coté des humbles ... et je me tais

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 25
    Par défaut
    Salut,

    Le gros avantage de WMI (comme ADSI, IIS, etc...) est que l'ensemble des objets exportés sont disponibles via des monikers COM

    Je connais très très peu Delphi, mais si je ne me trompes pas, tu devrais pouvoir l'utiliser directement avec un équivalent GetObject qui retourne l'interface IDispatch de ton objet demandé, dans le genre de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function MyGetObject(const MonikerName: string): IDispatch;
    var
      Dispatch: IDispatch;
    begin
      OleCheck(CoGetObject(PWideString(WideString(MonikerName)), nil, IDispatch,
    @Dispatch));
      Result := Dispatch;
    end;
    ou alors en utilisant les fonctions dédiées aux monikers MkParseDisplayName, BindToObject, etc...

    Dans ces cas là tu ne devrais pas avoir à linker ton projet statiquement avec la lib wbem.

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Merci,
    mais je n'ai pas de pb de ce coté là, c'est Halleck qui est concerné.
    Et Windev et les objet COM ç'est pas gagné.

    Pour terminer, avec Delphi je n'ai pas ( encore ?) besoin de gérer ce type d'appel.
    A partir du moment où on référence l'unité crée par l'importation de la librairie de type et que l'on utilise un composant SWbemLocator voici ce que cela donne :
    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
    ...
     Service:= SWbemLocator1.ConnectServer('.', 'root\CIMV2', '', '', '',
          '', 0, nil);
    
      SObject:= Service.Get('Win32_TemperatureProbe', wbemFlagUseAmendedQualifiers, nil);
      ObjectSet:= SObject.Instances_(0, nil);
      Enum:= (ObjectSet._NewEnum) as IEnumVariant;
     
     while (Enum.Next(1, TempObj, Value) = S_OK) do
      begin
        SObject:= IUnknown(TempObj) as SWBemObject;
        PropSet:= SObject.Properties_;
        PropEnum:= (PropSet._NewEnum) as IEnumVariant;
        ListItem:= ListView.Items.Add;
    ...
    et l'unité compilée fait 104 Ko ...
    A+

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 25
    Par défaut
    Bien sûr, je n'ai jamais dit le contraire, ça fonctionne très bien en faisant un link static (et heureusement).

    Je veux bien croire qu'il n'y a pas vraiment d'avantage en Delphi à faire des liaisons dynamiques plutot que statiques, mais pour l'ouverture sur d'autres languages c'est un gros avantage, surtout pour des languages interprétés comme l'ASP ou le VBS...

    C'est tout le sujet du Early Binding / Leavy Binding de COM....

    Mais c'est vrai, halleck ça marche ou pas ? C'est pour toi au départ...

  16. #16
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Moi je suis totalement depassé. Je vais travailler sur le projet, mais plutôt doucement, parce que là . Je pense avoir tous les éléments dont j'ai besoin, et même plus, mais c'est au dessus de mon niveau .

    Je vais donc y a aller tranquile . Merci pour tous vos messages!

  17. #17
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    ahah, deja quand ndietrich parle, ca fait peur toujours peur... il te sors des codes d'on ne sait pas d'ou. c un secret, mais il a inventé la programmation :p

    halleck, meme si les codes paraissent bizarre au depart, crois, c'est vraiment mais vraiment simple. en grand maximum une heure tu aura ton prog dans le langage de ton choix (logikement) et ta temperature processeur. de plus, il y a des tres bons tutos wmi et cest le chemin le plus simple pour obtenir ce que tu souhaite

  18. #18
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Je pense aussi, mais pour le faire il faudra que je mette vraiment dedans, et en ce moment j'ai pas le temps. Et tu dis que le code n'est pas compliqué, mais... il n'est pas simple non plus, enfin pas pour moi. Mais je vais m'y retrouver en m'appliquant un peu .

    Encore merci!

    PS: plus la peine de poster de message, j'ai tout ce qu'il me faut, enfin je crois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C++]Température CPU avec l'api Windows
    Par Yoshito.22 dans le forum Windows
    Réponses: 6
    Dernier message: 01/11/2007, 11h30
  2. API pour connaître les fonctionnalités existants dans un site web
    Par imedad dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 22/03/2007, 19h20
  3. Comment connaître la température du processeur via SNMP?
    Par SkyDev dans le forum Administration système
    Réponses: 5
    Dernier message: 08/03/2007, 13h26
  4. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  5. [API Win]Fonction pour connaître l'uptime?
    Par oiffrig dans le forum Windows
    Réponses: 2
    Dernier message: 24/10/2005, 09h52

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