Не удается получить Win32_ComputerSystem - OEMStringArray в c # - PullRequest
2 голосов
/ 08 декабря 2010

Попытка получить OEMStringArray из WMI и использовать его как текст, но в результате все еще остается пустое текстовое поле. Похоже, что output - это строка []. Команда типа "wmic computersystem get oemstringarray" работает. Извините, я новичок-программист.

Пробовал:

  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();

            }
      }

А также:

        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();

             }
         }   

Что-то из этого:

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

Есть идеи?

Спасибо, elmatkos

1 Ответ

1 голос
/ 08 декабря 2010

Ваш код, как указано, был так близок к тому, чтобы быть правильным. Объедините ваш первый образец с ListBox в третьем, чтобы получить то, что вы хотите.

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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...