WMI
* Windows 上でいろんな情報を取得することが出来る機能
WMI Library
Win32_Process
* プロセスを表す
Win32_ComputerSystem
* Windows環境のシステムオペレーションを表す
参考文献
http://www.anchorsystems.jp/anchor/ashp/netmon/samples/wmi_os.html#Win32_ComputerSystem.htmhttp://www.wmifun.net/library/
サンプル
実行中の各プロセス表示
using System.Management;
private void button1_Click(object sender, EventArgs e)
{
string result = string.Empty;
using (ManagementObjectSearcher objectSearcher =
new ManagementObjectSearcher("SELECT * FROM Win32_Process"))
{
using (ManagementObjectCollection managementObjects = objectSearcher.Get())
{
foreach (ManagementObject managementObject in managementObjects)
{
result = result +
managementObject["Description"].ToString() +
":" +
managementObject["ProcessId"].ToString() + "\n";
}
}
}
this.textBox5.Text = result;
}
CPU一覧の情報
private void button2_Click(object sender, EventArgs e)
{
// クラスを取得
ManagementClass managementClass = new ManagementClass("Win32_Processor");
// CPU一覧を取得
ManagementObjectCollection managementObjects = managementClass.GetInstances();
string output = string.Empty;
// CPU情報を一つずつ取り出す
foreach (ManagementObject managementObject in managementObjects)
{
// 情報を表示
output =
output +
managementObject["DeviceID"].ToString() +
" / " +
managementObject["Name"].ToString() +
" / " +
managementObject["MaxClockSpeed"].ToString() +
" / " +
managementObject["L2CacheSize"].ToString() +
"\n";
}
this.textBox1.Text = output;
}
Windows環境のシステムオペレーション情報
private void button3_Click(object sender, EventArgs e)
{
string path = @"\\" + Environment.MachineName + @"\root\cimv2";
ManagementScope scope = new ManagementScope(path);
scope.Connect();
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_ComputerSystem");
string result = string.Empty;
using (ManagementObjectSearcher objectSearcher =
new ManagementObjectSearcher(scope, query))
{
using (ManagementObjectCollection managementObjects = objectSearcher.Get())
{
foreach (ManagementObject managementObject in managementObjects)
{
result = result + managementObject["Caption"].ToString()
+ " / " + managementObject["AdminPasswordStatus"].ToString()
+ " / " + managementObject["AutomaticResetBootOption"].ToString()
+ " / " + managementObject["Domain"].ToString()
+ " / " + managementObject["UserName"].ToString()
+ "\n";
}
}
}
this.textBox1.Text = result;
}
参考文献
http://www.wmifun.net/step/csn_01.htmlhttp://dobon.net/vb/dotnet/system/wmiwin32os.html
http://uchukamen.com/Programming/WMI/index.htm
http://www.shise.net/wiki/wiki.cgi?page=C%23%2F%A5%E1%A5%E2%2FWMI
http://anoyoroshi.blog32.fc2.com/blog-entry-3.html
http://blogs.technet.com/b/jpilmblg/archive/2009/04/23/wmi-sample-code-managed-vb-c-wmi-exe.aspx
WMI 名前空間のクラスを一覧表示する
http://msdn.microsoft.com/ja-jp/library/ms257362.aspxhttp://www.slideshare.net/TomoyukiObi/wf4-wmi-ps