2010-12-08 47 views
2

Vous essayez d'obtenir OEMStringArray à partir de WMI et l'utiliser comme texte, mais le résultat est toujours vide zone de texte. On dirait que ouput est une chaîne de caractères []. Commande comme "wmic computersystem get oemstringarray" fonctionne. Désolé, je suis programmeur débutant.Vous ne pouvez pas obtenir Win32_ComputerSystem - OEMStringArray dans C#

Essayé:

ManagementObjectSearcher mc7 = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem"); 
    ManagementObjectCollection moc7 = mc7.Get(); 
    if (moc7.Count != 0) 
    { 
     foreach (ManagementBaseObject mo7 in moc7) 
      { 
      textBox7.Text = mo7["OEMStringArray"].ToString(); 

      } 
     } 

Et aussi:

 ManagementClass mc3 = new ManagementClass("Win32_ComputerSystem"); 
     ManagementObjectCollection moc3 = mc3.GetInstances(); 
     if (moc3.Count != 0) 
     { 
      foreach (ManagementObject mo3 in mc3.GetInstances()) 
      { 

       textBox7.Text = mo3["OEMStringArray"].ToString(); 

      } 
     } 

Certains de ceci:

   ... 
       string[] stringArray = mo5["OEMStringArray"] as String[]; 
       foreach (string myString in stringArray) 
       { 
       listBox2.Items.Add(stringArray); 
       } 

Toutes les idées?

Merci, elmatkos

Répondre

1

Votre code comme donné était si proche d'être correct. Combinez votre premier échantillon avec le ListBox dans votre troisième échantillon pour obtenir ce que vous voulez.

ManagementObjectSearcher mc7 = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem"); 
ManagementObjectCollection moc7 = mc7.Get(); 

if (moc7.Count != 0) 
{ 
    foreach (ManagementBaseObject mo7 in moc7) 
    { 
     string[] data = mo7["OEMStringArray"] as string[]; 

     if (data != null) 
     { 
      listBox2.Items.AddRange(data); 
     } 
    } 
}