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

VB.NET Discussion :

Lecture WMI niveau de batterie


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Lecture WMI niveau de batterie
    Bonjours , je voudrais recuperer le niveau des batteries d'un ordi portable (2 batterie)
    J'ai fait un prog similaire en AutoIT et cela fonctionne tres bien
    Mais en visual basic quand j essai de lire j ai une erreur

    Version Autoit
    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
     
    Func Batt()
        Local $s_Text = ''
        Dim $Obj_WMIService = ObjGet('winmgmts:\\' & @ComputerName & '\root\cimv2');
        If (IsObj($Obj_WMIService)) And (Not @error) Then
            Dim $Col_Items = $Obj_WMIService.ExecQuery("select * from CIM_Battery") 
            Local $Obj_Item
            For $Obj_Item In $Col_Items
    				$s_Text &= $Obj_Item.Name 
    			    $s_Text &= " : " & $Obj_Item.EstimatedChargeRemaining 
    				$s_Text &=":" & @CRLF 
    		Next
    		Return String($s_Text)
        Else
            Return 0
        EndIf
    EndFunc
    Version VB.NET

    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
     
           Public Function Batt() As String
                Dim Txt As String = ""
                Try
                    Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("select * from CIM_Battery")
                    For Each WMI_Info As ManagementObject In searcher.Get()
                        Txt &= WMI_Info("Name").ToString() + vbNewLine
     
                    Next WMI_Info
                    Return Txt
     
                Catch ex As Exception
     
                    Return "Erreur lecture Batt " + ex.Message
                End Try
            End Function
    Pour infos j'ai coder la meme fonction pour le type d os et ca fonctionne sans probleme

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Mais en visual basic quand j essai de lire j ai une erreur
    Quelle est l'erreur ?

    eb.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    parametre invalide

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Le code est fonctionnel chez moi (en Windows Forms). C'est sur quel type d'application et quelle Framework ?
    eb.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    framwork 3.5 et 4 meme erreur
    app WindowsForm
    si cela fonctionne chez toi cela doit te donné le "nom" de ta batterie
    tu confirme ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Je confirme :

    DELL TY3P40ADELL TY3P40A
    J'ai testé en Framework 4.5 et 3.5 ! Aucun problème ! Je ne vois pas d'où ça peut venir ...

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    tu peu m uploader ton projet quelque part stp ? (multiupload etc...)
    ou par mail , je t envoi ca en pm

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Ok c'est fait.

  9. #9
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Et si tu remplaces :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each WMI_Info As ManagementObject In searcher.Get()
                        Txt &= WMI_Info("Name").ToString() + vbNewLine
     
                    Next WMI_Info
                    Return Txt

    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each WMI_Info As ManagementObject In searcher.Get()
                        Txt &= WMI_Info.properties("Name").ToString() + vbNewLine
     
                    Next 
                    Return Txt
    Mieux ?
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    Et si tu remplaces :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each WMI_Info As ManagementObject In searcher.Get()
                        Txt &= WMI_Info("Name").ToString() + vbNewLine
     
                    Next WMI_Info
                    Return Txt

    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each WMI_Info As ManagementObject In searcher.Get()
                        Txt &= WMI_Info.properties("Name").ToString() + vbNewLine
     
                    Next 
                    Return Txt
    Mieux ?
    Non aucun changement
    c'est quand meme etrange , par exemple ce code fonctionne :
    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
     
    Public Function OpSys() As String ' system complet
                Dim Txt As String = ""
                Try
                    Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM CIM_OperatingSystem")
                    For Each WMI_Info As ManagementObject In searcher.Get()
                        Txt &= WMI_Info("Caption").ToString() + vbNewLine
                        Txt &= WMI_Info("CSDVersion").ToString() + vbNewLine
                        Txt &= WMI_Info("OSArchitecture").ToString()
                    Next WMI_Info
                    Return Txt
     
                Catch ex As Exception
     
                    Return "Erreur lecture OS"
                End Try
            End Function

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bon j ai effectuer pas mal de test sur plusieurs machines differentes
    avec wmi creator

    Windows Seven , Xp ..
    Framwork 3.5 , 4.0 , 4.5

    Le bug revient plus ou moins independement de l'os et/ou le framwork installer

    connaissez vous un programme qui pourrais me dire le nom des dll utilisée par mon executable ? que je verifie les version

    je pense que c est lier au framework car le logiciel programmer en Autoit
    fonctionne sur toutes les machines testée

    par contre pourquoi juste sur la lecture de la batterie et pas celle de l os ou du bios . Mystere

  12. #12
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    C'est bien étrange en effet !
    Un programme indiquant les dll chargées par un exe, je ne connais pas. Mais si tu veux, voilà une petite routine qui te charge ça dans un memo :
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub SetInfoAssembliesIntoMemo()
            Memo.AppendText(Environment.NewLine & "Version du framework : " & Environment.Version.ToString)
            Memo.AppendText(Environment.NewLine & "Système d'exploitation : " & Environment.OSVersion.Platform.ToString & " " & Environment.OSVersion.Version.ToString & " " & Environment.OSVersion.ServicePack.ToString)
            Memo.AppendText(Environment.NewLine + "Modules chargés : ")
            For Each aAssembly In My.Application.Info.LoadedAssemblies
                Memo.AppendText(Environment.NewLine + aAssembly.GetName.Name + ", version " + aAssembly.GetName.Version.ToString + ", Runtime " + aAssembly.ImageRuntimeVersion)
            Next
    End Sub
    Bon courage !
    eb.

  13. #13
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bonjours

    Bon histoire de m embrouiller un peu plus . .. . .

    Version Assembly qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Version du framework : 2.0.50727.5466
    Système d'exploitation : Win32NT 6.1.7601.65536 Service Pack 1
    Modules chargés : 
    mscorlib, version 2.0.0.0, Runtime v2.0.50727
    WindowsApplication2, version 1.0.0.0, Runtime v2.0.50727
    Microsoft.VisualBasic, version 8.0.0.0, Runtime v2.0.50727
    System, version 2.0.0.0, Runtime v2.0.50727
    System.Windows.Forms, version 2.0.0.0, Runtime v2.0.50727
    System.Drawing, version 2.0.0.0, Runtime v2.0.50727
    System.Runtime.Remoting, version 2.0.0.0, Runtime v2.0.50727
    Accessibility, version 2.0.0.0, Runtime v2.0.50727
    System.Management, version 2.0.0.0, Runtime v2.0.50727

    Version qui ne fonctionne pas :

    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
     
    Version du framework : 2.0.50727.5466
    Système d'exploitation : Win32NT 6.1.7601.65536 Service Pack 1
    Modules chargés : 
    mscorlib, version 2.0.0.0, Runtime v2.0.50727
    WindowsApplication2, version 1.0.0.0, Runtime v2.0.50727
    Microsoft.VisualBasic, version 8.0.0.0, Runtime v2.0.50727
    System, version 2.0.0.0, Runtime v2.0.50727
    System.Windows.Forms, version 2.0.0.0, Runtime v2.0.50727
    System.Drawing, version 2.0.0.0, Runtime v2.0.50727
    System.Configuration, version 2.0.0.0, Runtime v2.0.50727
    System.Xml, version 2.0.0.0, Runtime v2.0.50727
    System.Runtime.Remoting, version 2.0.0.0, Runtime v2.0.50727
    Accessibility, version 2.0.0.0, Runtime v2.0.50727
    System.Management, version 2.0.0.0, Runtime v2.0.50727

    j ai ceci en plus sur celle qui ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.Configuration, version 2.0.0.0, Runtime v2.0.50727
    System.Xml, version 2.0.0.0, Runtime v2.0.50727

  14. #14
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    voici le message d erreur complet :
    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
     
    Consultez la fin de ce message pour plus de détails sur l'appel du débogage
    juste-à-temps (JIT) à la place de cette boîte de dialogue.
     
    ************** Texte de l'exception **************
    System.Management.ManagementException: Paramètre non valide 
       à System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
       à System.Management.ManagementPath.SetWbemPath(IWbemPath wbemPath, String path)
       à System.Management.ManagementPath.CreateWbemPath(String path)
       à System.Management.ManagementPath..ctor(String path)
       à System.Management.ManagementObject.GetManagementObject(IWbemClassObjectFreeThreaded wbemObject, ManagementScope scope)
       à System.Management.ManagementBaseObject.GetBaseObject(IWbemClassObjectFreeThreaded wbemObject, ManagementScope scope)
       à System.Management.ManagementObjectCollection.ManagementObjectEnumerator.get_Current()
       à WindowsApplication2.Form1.Main()
       à WindowsApplication2.Form1.bt_decrypt_Click(Object sender, EventArgs e)
       à System.Windows.Forms.Control.OnClick(EventArgs e)
       à System.Windows.Forms.Button.OnClick(EventArgs e)
       à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       à System.Windows.Forms.Control.WndProc(Message& m)
       à System.Windows.Forms.ButtonBase.WndProc(Message& m)
       à System.Windows.Forms.Button.WndProc(Message& m)
       à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

  15. #15
    Membre actif Avatar de AcidLines
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Février 2010
    Messages : 198
    Points : 279
    Points
    279
    Par défaut
    Testé aussi et fonctionnel chez moi.
    Pour les DLL chargées par une appli, j'utilise le logiciel Dependency Walker (depends.exe).

Discussions similaires

  1. Lecture niveau batterie par système windows
    Par ermips dans le forum C#
    Réponses: 6
    Dernier message: 02/09/2013, 11h28
  2. récupérer & afficher le niveau de batterie d'un PC
    Par amine.gafsi dans le forum Général Java
    Réponses: 1
    Dernier message: 02/07/2012, 00h20
  3. Niveau de batterie
    Par kenitra-boulla dans le forum Java ME
    Réponses: 4
    Dernier message: 10/02/2012, 16h28
  4. AppWidget, niveau de batterie et intent
    Par IsiTech dans le forum Android
    Réponses: 1
    Dernier message: 25/01/2012, 21h57
  5. [Débutant] Récuperation du niveau de batterie
    Par Zucco dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 26/09/2007, 16h49

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