utiliser System.Management

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
seb7000
Messages : 140
Inscription : 05 Mars 2010 17:51

utiliser System.Management

Message par seb7000 » 24 Août 2011 08:44

Bonjour, j'essaye de récupérer quelques infos système pour m'amuser à faire quelques bidouilles :)
Par contre je viens de m'apercevoir que

Code : Tout sélectionner

 "using System.Management;"
n'était pas utilisable dans Unity.

Y aurait-il un moyen détourner d'y accéder (par un dll pas exemple, je n'ai pas les compétences de ce côté ci).
J'aimerais par exemple pouvoir utiliser ce bout de code par exemple :

Code : Tout sélectionner

ManagementObjectSearcher search =  new ManagementObjectSearcher("SELECT * FROM Win32_BIOS");
foreach (ManagementObject  adapter in search.Get()){
//do something
}

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: utiliser System.Management

Message par ZJP » 24 Août 2011 18:59

Intéressé par le WMI?
quelle fonction?

JP

edit : Tu à modifié ton post pendant que je rédigeais le mien. :D

Edit : bons souvenirs : viewtopic.php?f=7&t=861&hilit=WMI
et viewtopic.php?f=7&t=1156&hilit=WMI

seb7000
Messages : 140
Inscription : 05 Mars 2010 17:51

Re: utiliser System.Management

Message par seb7000 » 24 Août 2011 19:59

Je voudrais par exemple récupérer le serial number du CPU.
Code VB.Net :

Code : Tout sélectionner

Dim search As New ManagementObjectSearcher("SELECT * FROM Win32_BIOS")
For Each info In search.Get()
TextBox1.Text = "Serial Number: " & info("SerialNumber").ToString() & CRLF
Next
En C# ça doit donner un truc du genre (non testé)

Code : Tout sélectionner

New ManagementObjectSearcher search ("SELECT * FROM Win32_BIOS")
foreach info in search.Get()
Debug.Log("Serial Number: "+info("SerialNumber").ToString());
Tu penses que c'est jouable ?

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: utiliser System.Management

Message par ZJP » 24 Août 2011 20:07

WMI donc, oui c'est possible. Même réponse qu'il y a quelques mois : une DLL, mais d'ici la fin de semaine. ;)

JP

Edit : Généré par ça : Microsoft WMI Code Creator v1.0 http://www.microsoft.com/download/en/de ... en&id=8572
Vraiment dommage que System.Management ne soit pas opérant. :evil:

Code : Tout sélectionner

using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class MyWMIQuery
    {
        public static void Main()
        {
            try
            {
                ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher("root\\CIMV2", 
                    "SELECT * FROM Win32_BIOS"); 

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("Win32_BIOS instance");
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("SerialNumber: {0}", queryObj["SerialNumber"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }
        }
    }
}

seb7000
Messages : 140
Inscription : 05 Mars 2010 17:51

Re: utiliser System.Management

Message par seb7000 » 24 Août 2011 21:11

Merci, ça serait génial si tu pouvais m'aider avec ce dll :)
C'est effectivement dommage que System.Management ne soit pas accessible ...

Par curiosité, comment fais tu pour créer un dll permettant d'y accéder ?
Existe t-il peut être un site internet expliquant comment procéder et quel logiciel utiliser ?

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: utiliser System.Management

Message par ZJP » 24 Août 2011 22:10

Par curiosité, comment fais tu pour créer un dll permettant d'y accéder ?
Existe t-il peut être un site internet expliquant comment procéder et quel logiciel utiliser ?
Pas de mystère. Il te faut un langage permettant l’accès aux classes WMI a travers la librairie COM et compilant des DLLs : C/C+ c'est mieux.

Voir : http://msdn.microsoft.com/en-us/library/aa394558
http://msdn.microsoft.com/en-us/library/aa390423

JP
Dernière édition par ZJP le 24 Août 2011 22:20, édité 1 fois.

seb7000
Messages : 140
Inscription : 05 Mars 2010 17:51

Re: utiliser System.Management

Message par seb7000 » 24 Août 2011 22:18

Merci, je vais jeter un coup d'oeil.
Si tu as le temps de faire le dll ça serait génial. ;)
Est ce qu'il serait possible que tu me communiques le code source pour que je puisse m'en inspirer pour la suite ?

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: utiliser System.Management

Message par ZJP » 24 Août 2011 22:41

OK ;)

seb7000
Messages : 140
Inscription : 05 Mars 2010 17:51

Re: utiliser System.Management

Message par seb7000 » 24 Août 2011 22:42

Excellent, merci pour ton aide :)

Répondre

Revenir vers « Scripting »