不知为何,我在vs2005下 无论取CPU序列号还是硬盘序列号等,都要报错,具体错误如下:,同样的代码,同样的电脑,但在vs2010下则可以获取,不知道有高手知道为何不?如何在vs2005下能正常获取cpu等,代码如网上通用代码://获得CPU的序列号
public static string GetCPUSerialNumber()
{
string cpuSerialNumber = string.Empty;
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances(); //这里报错
foreach (ManagementObject mo in moc)
{
cpuSerialNumber = mo["ProcessorId"].ToString();
break;
}
mc.Dispose();
moc.Dispose();
return cpuSerialNumber;
} // 取得设备硬盘的卷标号
public string GetDiskVolumeSerialNumber()
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"d:\"");
disk.Get();//这里报错
return disk.GetPropertyValue("VolumeSerialNumber").ToString();
}
错误信息为:无法在 DLL“wminet_utils.dll”中找到名为“GetCurrentApartmentType”的入口点。 在网上没找到此问题的解决方法,请高手帮忙!
public static string GetCPUSerialNumber()
{
string cpuSerialNumber = string.Empty;
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances(); //这里报错
foreach (ManagementObject mo in moc)
{
cpuSerialNumber = mo["ProcessorId"].ToString();
break;
}
mc.Dispose();
moc.Dispose();
return cpuSerialNumber;
} // 取得设备硬盘的卷标号
public string GetDiskVolumeSerialNumber()
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"d:\"");
disk.Get();//这里报错
return disk.GetPropertyValue("VolumeSerialNumber").ToString();
}
错误信息为:无法在 DLL“wminet_utils.dll”中找到名为“GetCurrentApartmentType”的入口点。 在网上没找到此问题的解决方法,请高手帮忙!
//定义CPU的信息结构
[StructLayout(LayoutKind.Sequential)]
public struct CPU_INFO
{
public uint dwOemId;
public uint dwPageSize;
public uint lpMinimumApplicationAddress;
public uint lpMaximumApplicationAddress;
public uint dwActiveProcessorMask;
public uint dwNumberOfProcessors;
public uint dwProcessorType;
public uint dwAllocationGranularity;
public uint dwProcessorLevel;
public uint dwProcessorRevision;
} [DllImport("kernel32")]
public static extern void GetSystemInfo(ref CPU_INFO cpuinfo);
CPU_INFO CpuInfo;
CpuInfo = new CPU_INFO();
GetSystemInfo(ref CpuInfo);获取到的 dwOemId 都为0呢