動作していないデバイスをリストアップする
面白そうな記事だったので、ちょっと試してみました。
ネタ元は、CodeProjectです。
* How to Get a List of Non-Working Devices Using VB.NET
o http://www.codeproject.com/KB/system/GetNonWorkingDevicesVbNet.aspx
* Developer Source
o http://www.developersource.net/DevPage.aspx?ID=12
WMIを利用するんですね~。勉強になります。
CodeProjectにあるサンプルはVBで記述されていたので同じような内容でC#で書いてみました。
using System;
using System.Linq;
using System.Management;
namespace ShowNotWorkingDevices {
class Program {
static void Main(string[] args) {
(new Program()).Execute();
Console.WriteLine("Press any key to exit...");
Console.ReadLine();
}
private void Execute() {
//
// 動作していないデバイスをリストアップ.
//
var wmi = new ManagementObjectSearcher("SELECT * FROM Win32_PnpEntity WHERE ConfigManagerErrorCode <> 0");
var query = from mo in wmi.Get().Cast<ManagementObject>()
let description = mo["Description"]
where !string.IsNullOrEmpty(description as string)
select mo;
foreach (var device in query) {
Console.WriteLine("Description={0}, ErrorCode={1}", device["Description"], device["ConfigManagerErrorCode"]);
}
}
}
}
WMIって名前は知っていたんですが、初めて使いました。便利ですね~これ。
いろんな情報が取得できるみたいです。