私はこのコードを使用してプロセッサIDを取得しています:
public static string getProcessorId()
{
var mc = new ManagementClass("Win32_Processor");
var moc = mc.GetInstances();
foreach (var mo in moc)
{
return mo.Properties["ProcessorId"].Value.ToString();
}
return "Unknown";
}
Windows732ビットのVisualStudio2008を実行しています。残念ながら、mc.GetInstances()メソッドの呼び出しによって「見つかりません」という例外が発生しています。
これが同様のコードです(HDDシリアルをフェッチします):
public static string getVolumeSerialNumber()
{
var disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
return disk["VolumeSerialNumber"].ToString();
}
このコードも失敗します。「disk.Get()」メソッドは「無効なクラス」例外を発生させます。
このコードをUACをオフにしてからオンにして実行しましたが、何も役に立ちません。
私は何が間違っているのですか?