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

WinDev Discussion :

WD WMI DOTNET [WD12]


Sujet :

WinDev

  1. #1
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut WD WMI DOTNET
    Bonjour à tous,

    Je voulais savoir si quelqu'un arrive à exécuter cet exemple, car pour ma part, j'ai le droit à un beau message d'erreur :
    http://www.developpez.net/forums/d94...-logiciel-cle/

    Merci à tous

  2. #2
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Bonjour,

    Je sais qu'avec Windev 12, j'ai eu pas mal de problème sur la méthode GetEnumerator.
    A+
    Vince

    http://vroy1.free.fr/wpfr/
    http://www.ennovsys.fr

  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Mauvaise réponse... enfin pas celle que je voulais entendre

    Je tourne en rond aujourd'hui pour essayer de trouver une autre méthode, mais pas l'ombre d'une idée...rien...nada

    Merci quand même, car néanmoins, ça me dit que ça ne vient pas forcément de ma bécane.

    Edit : Je rebondis sur le "pas mal de problème", as-tu réussi à contourner ce problème ?

  4. #4
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Oui j'avais résolu le problème en changeant de version de windev. (passage de 12 à 14/15). J'avais remarqué pour pour une même assembly mais une version de Windev différente, les méthodes listées n'étaient pas toutes identiques (ils en manquaient dans l'un, pas dans l'autre, etc ...)
    Donc désolé, je n'ai pas plus d'info à ce sujet.
    A+
    Vince

    http://vroy1.free.fr/wpfr/
    http://www.ennovsys.fr

  5. #5
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Alors là, c'est encore une plus mauvaise réponse... argh je suis mouru.

    Merci beaucoup

  6. #6
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Deja tu test avec quelle version de windev ?

  7. #7
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Je suis en 12 et n'ai pas d'autres versions à ma disposition.

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Pour ceux qui ne veulent (ou ne peuvent) pas utiliser .NET, il est possible d'exécuter un code VBScript.

    La manière de faire a déjà été évoquée sur le forum.
    Ça consiste à "embarquer" et exécuter le code VBScript dans une application WinDev, grâce au composant ActiveX ScriptControl (installé automatiquement avec Windows).

    Voici un lien vers le message qui en parle.
    http://www.developpez.net/forums/d83...s/#post4797302

    Maintenant, je prends un exemple de fonction VBScript qui retourne une chaîne de caractères composée d'autant de lignes qu'il y a d'adaptateurs réseau, où chaque ligne est composée de l'adresse MAC et de l'adresse IP séparées par une tabulation.

    Code VBScript : 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
     
     
    Function ScanNetworkAdapters()
        Dim objWMIService, colAdapters, objAdapter, sInfo
     
        Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
        Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
     
        sInfo = ""
        For Each objAdapter In colAdapters
            If sInfo <> "" Then sInfo = sInfo & Chr(13) & Chr(10)
            sInfo = sInfo & objAdapter.MacAddress & Chr(9) & objAdapter.IPaddress(0)
        Next
     
        ScanNetworkAdapters = sInfo
    End Function

    On peut exécuter ce code dans une procédure WD comme ceci:
    Code WLangage : 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
     
    PROCEDURE WMI_ScanNetworkAdapters()
    sList est une chaîne
    oScript est un objet Automation "MSScriptControl.ScriptControl"
     
    sScriptVBS est une chaîne = [
     
    Function ScanNetworkAdapters()
        Dim objWMIService, colAdapters, objAdapter, sInfo
     
        Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
        Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
        
        sInfo = ""
        For Each objAdapter In colAdapters
            If sInfo <> "" Then sInfo = sInfo & Chr(13) & Chr(10)
            sInfo = sInfo & objAdapter.MacAddress & Chr(9) & objAdapter.IPaddress(0)
        Next
     
        ScanNetworkAdapters = sInfo
    End Function
    ]
     
    oScript>>Language("VBScript")
    oScript>>AddCode(sScriptVBS)
    oScript>>Timeout(-1)	//pas de timeout
    sList = oScript>>Run("ScanNetworkAdapters") //Appel
     
    RENVOYER sList
    Maintenant Lo², à toi de trouver les codes VBScript qui te donnent les informations recherchées.
    _

  9. #9
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Merci =JBO= pour cette aide précieuse que je découvre ce matin... et hop on y go

  10. #10
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Moi aussi je découvre. Merci JBO

  11. #11
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Et voilou :
    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
    PROCEDURE procVBScriptProcessors()
    sList est une chaîne
    oScript est un objet Automation "MSScriptControl.ScriptControl"
     
    sScriptVBS est une chaîne = [
     
    Function ScanProcessors()
    Dim objWMIService, colProcessors, objProcessor, sInfo
     
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colProcessors = objWMIService.ExecQuery("Select * from Win32_Processor")
     
    sInfo = ""
    For Each objProcessor In colProcessors
    	If sInfo <> "" Then sInfo = sInfo & Chr(13) & Chr(10)
    	sInfo = sInfo & objProcessor.ProcessorId
    	Next
     
    	ScanProcessors = sInfo
    End Function
    ]
     
    oScript>>Language("VBScript")
    oScript>>AddCode(sScriptVBS)
    oScript>>Timeout(-1)	//pas de timeout
    sList = oScript>>Run("ScanProcessors") //Appel
     
    RENVOYER sList
    Merci à =JBO= qui a plus que maché le boulot.

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Salut à vous 2 !

    Et merci Lo² de nous avoir communiqué la procédure WLangage qui fonctionne (?).

    Si je comprends bien, sur un système multiprocesseurs, on devrait récupérer plusieurs ProcessorId différents, non ?
    Mais sur mon misérable PC préhistorique, la procédure retourne une chaîne vide.

    [EDIT]
    Par curiosité, j'ai lancé une petite recherche et j'ai trouvé une ressource intéressante: Win32_Processor Class.
    Je pense que sur mon PC, l'accès au n° de série du microprocesseur est bloqué.
    [/EDIT]
    _

  13. #13
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Alors en effet, le ProcesseurID n'est pas le SN du processeur, il s'agit d'une concaténation de différentes informations.
    Le UniqueID aurait pu être cela mais après recherche également pour vérifier ma remontée d'information, il semblerait que le SN ne soit plus disponible depuis le Pentium III

    Sur un poste multiprocesseur, il y aura en effet plusieurs ProcessorID, qui seront différents les uns des autres, mais je parle bien de plusieurs processeurs physiques, et non de dual core.

    Par contre, si on teste cette procédure sur 2 machines du même constructeur, achetées en même temps, je suis tombé sur 2 ProcessorID identiques.

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

Discussions similaires

  1. [DotNet][Crystal Report] Déploiement : aide
    Par guignol dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/05/2004, 09h54
  2. Quel hébergeur pour vos dev dotnet?
    Par stephtbest dans le forum ASP.NET
    Réponses: 5
    Dernier message: 30/01/2004, 14h53
  3. WMI et C++ ...
    Par gargle dans le forum MFC
    Réponses: 2
    Dernier message: 19/12/2003, 08h58

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