Войти

Показать полную графическую версию : Как совместить WMI с моей программой?


Virtyaluk
27-03-2010, 20:23
Здравствуйте,
помогите решить одну проблему
есть код:

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_OperatingSystem");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("OSArchitecture: {0}", queryObj["OSArchitecture"]);
Console.WriteLine("SystemDirectory: {0}", queryObj["SystemDirectory"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}


нужно его функциональную часть интегрировать в мою программу т.е. нужно совместить оба кода в один!
моя программа (просто форма на которой две label):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Management;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
}
}


в результате, после запуска готового приложения, на label1 и label2 должна появляться информация из переменных OSArchitecture и SystemDirectory

как совместить эти коды?
уже лепил как только можно - не выходит и все...
помогите с кодом.
Жду помощи.

Delirium
29-03-2010, 04:26
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Management;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_OperatingSystem");
foreach (ManagementObject queryObj in searcher.Get())
{
label1.Text +=queryObj["OSArchitecture"].ToString() + System.Environment.NewLine;
label2.Text +=queryObj["SystemDirectory"].ToString() + System.Environment.NewLine;
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
}

Вместо Label1 лучше использовать TextBox и в его свойствах поставить Multiline, чтобы текст лучше видно было.

Virtyaluk
29-03-2010, 15:34
1 ошибка
"Не удалось найти имя типа или пространства имен "EventArgs" (пропущена директива using или ссылка на сборку?)"
если в место простого EventArgs ПИШУ System.EventArgs (в строке private void Form1_Load)
так предыдущая ошибка исчезает, но появляются новые:

"Не удалось найти имя типа или пространства имен "Form1" (пропущена директива using или ссылка на сборку?)"
"Не удалось найти имя типа или пространства имен "ManagementObjectSearcher" (пропущена директива using или ссылка на сборку?)"
"Не удалось найти имя типа или пространства имен "ManagementObject" (пропущена директива using или ссылка на сборку?)"
что и где не так??

Delirium
30-03-2010, 01:11
Virtyaluk, пишу ОДИН раз в ответ на все ваши темы и вопросы по ICQ:
Купите/скачайте книгу по C#, или пройдите БЕСПЛАТНЫЕ курсы по данному языку программирования - INTUIT.ru (http://www.intuit.ru/courses.html) и вам все станет понятно.
Не удалось найти имя типа или пространства имен "Form1" »
Не была добавлена форма в проект.
Не удалось найти имя типа или пространства имен "ManagementObjectSearcher" »
Не добавлена зависимость на данное пространство.


P.S. Вы не понимаете синтаксиса и структуры C#, а уже пытаетесь создавать какие то серьезные проекты. Мой вам совет - почитайте документацию, вопросов поубавится на порядок.




© OSzone.net 2001-2012