2
を報告します。WMIは、我々はハードドライブのIDプロセッサIDおよびMACアドレスをretriveするために、次のコードを持っている非ユニークなプロセッサID、ハードドライブIDとMACアドレス
private static string GetWMIValue(string query, string propertyName)
{
try
{
using (ManagementObjectSearcher search = new ManagementObjectSearcher(query))
{
using (ManagementObjectCollection results = search.Get())
{
foreach (var result in results)
{
if (result != null && result[propertyName] != null)
{
return result[propertyName].ToString();
}
}
}
}
}
catch
{
// do nothing.
}
return null;
}
public static string GetHardDriveSerialNumber()
{
string driveLetterName = Assembly.GetExecutingAssembly().Location.Substring(0, 1);
return GetWMIValue("SELECT VolumeSerialNumber FROM Win32_LogicalDisk WHERE DeviceID=\"" + driveLetterName + ":\"", "VolumeSerialNumber");
}
public static string GetProcessorId()
{
return GetWMIValue("SELECT ProcessorId FROM Win32_Processor", "ProcessorId");
}
public static string GetMacAddress()
{
return GetWMIValue("SELECT MacAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE", "MacAddress");
}
これはタブレットの一つの特定のブランドを除いて正常に動作します(私たちが知る限り)。このブランドでは、すべてのマシンが同じ3つの値を持っています。あなたが想像することができるように、これは私たちのライセンスでややねじ込みます。
誰もこれを見たことがありますか、誰かがより信頼性の高いメカニズムを持っていますか?
おかげ
あなたの式に 'SerialNumber'との' Signature'値を追加してみてください[Win32_DiskDrive](http://msdn.microsoft.com/en-us/library/windows/desktop/aa394132%28v=vs.85%29.aspx)WMIクラス。 – RRUZ