
internal static string GetCpuInfo()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT FROM Win32_Processor");
foreach (ManagementObject obj2 in searcherGet())
{
try
{
return (obj2GetPropertyValue("Name")ToString() + "," + obj2GetPropertyValue("CurrentClockSpeed")ToString() + " Mhz," + EnvironmentProcessorCountToString() + " 个处理器");
}
catch
{
continue;
}
}
return "未知";
}
internal static string GetCpuID()
{
ManagementObjectCollection instances = new ManagementClass("Win32_Processor")GetInstances();
foreach (ManagementObject obj2 in instances)
{
return obj2Properties["ProcessorId"]ValueToString();
}
return null;
}
winform可以,webform几乎就不可能除非写插件,
这是在winform下的。客户端的
using SystemRuntimeInteropServices;
using SystemManagement;
using System;
public class HardwareInfo
{
//取机器名
public string GetHostName()
{
return SystemNetDnsGetHostName();
}
//取CPU编号
public String GetCpuID()
{
try
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mcGetInstances();
String strCpuID = null ;
foreach( ManagementObject mo in moc )
{
strCpuID = moProperties["ProcessorId"]ValueToString();
break;
}
return strCpuID;
}
catch
{
return "";
}
}//end method
//取第一块硬盘编号
public String GetHardDiskID()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT FROM Win32_PhysicalMedia");
String strHardDiskID = null ;
foreach(ManagementObject mo in searcherGet())
{
strHardDiskID = mo["SerialNumber"]ToString()Trim();
break;
}
return strHardDiskID ;
}
catch
{
return "";
}
}//end
public enum NCBCONST
{
NCBNAMSZ =16, /////// absolute length of a net name /
MAX_LANA =254, /////// lana's in range 0 to MAX_LANA inclusive /
NCBENUM =0x37, /////// NCB ENUMERATE LANA NUMBERS /
NRC_GOODRET =0x00, /////// good return /
NCBRESET =0x32, /////// NCB RESET /
NCBASTAT =0x33, /////// NCB ADAPTER STATUS /
NUM_NAMEBUF =30, /////// Number of NAME's BUFFER /
}
[StructLayout(LayoutKindSequential)]
public struct ADAPTER_STATUS
{
[MarshalAs(UnmanagedTypeByValArray, SizeConst=6)]
public byte[] adapter_address;
public byte rev_major;
public byte reserved0;
public byte adapter_type;
public byte rev_minor;
public ushort duration;
public ushort frmr_recv;
public ushort frmr_xmit;
public ushort iframe_recv_err;
public ushort xmit_aborts;
public uint xmit_success;
public uint recv_success;
public ushort iframe_xmit_err;
public ushort recv_buff_unavail;
public ushort t1_timeouts;
public ushort ti_timeouts;
public uint reserved1;
public ushort free_ncbs;
public ushort max_cfg_ncbs;
public ushort max_ncbs;
public ushort xmit_buf_unavail;
public ushort max_dgram_size;
public ushort pending_sess;
public ushort max_cfg_sess;
public ushort max_sess;
public ushort max_sess_pkt_size;
public ushort name_count;
}
[StructLayout(LayoutKindSequential)]
public struct NAME_BUFFER
{
[MarshalAs(UnmanagedTypeByValArray, SizeConst=(int)NCBCONSTNCBNAMSZ)]
public byte[] name;
public byte name_num;
public byte name_flags;
}
[StructLayout(LayoutKindSequential)]
public struct NCB
{
public byte ncb_command;
public byte ncb_retcode;
public byte ncb_lsn;
public byte ncb_num;
public IntPtr ncb_buffer;
public ushort ncb_length;
[MarshalAs(UnmanagedTypeByValArray, SizeConst=(int)NCBCONSTNCBNAMSZ)]
public byte[] ncb_callname;
[MarshalAs(UnmanagedTypeByValArray, SizeConst=(int)NCBCONSTNCBNAMSZ)]
public byte[] ncb_name;
public byte ncb_rto;
public byte ncb_sto;
public IntPtr ncb_post;
public byte ncb_lana_num;
public byte ncb_cmd_cplt;
[MarshalAs(UnmanagedTypeByValArray, SizeConst=10)]
public byte[] ncb_reserve;
public IntPtr ncb_event;
}
[StructLayout(LayoutKindSequential)]
public struct LANA_ENUM
{
public byte length;
[MarshalAs(UnmanagedTypeByValArray, SizeConst=(int)NCBCONSTMAX_LANA)]
public byte[] lana;
}
[StructLayout(LayoutKindAuto)]
public struct ASTAT
{
public ADAPTER_STATUS adapt;
[MarshalAs(UnmanagedTypeByValArray, SizeConst=(int)NCBCONSTNUM_NAMEBUF)]
public NAME_BUFFER[] NameBuff;
}
public class Win32API
{
[DllImport("NETAPI32DLL")]
public static extern char Netbios(ref NCB ncb);
}
//取网卡mac
public string GetMacAddress()
{
string addr="";
try
{
int cb;
ASTAT adapter;
NCB Ncb=new NCB();
char uRetCode;
LANA_ENUM lenum;
Ncbncb_command = (byte)NCBCONSTNCBENUM;
cb = MarshalSizeOf(typeof(LANA_ENUM));
Ncbncb_buffer = MarshalAllocHGlobal(cb);
Ncbncb_length = (ushort)cb;
uRetCode = Win32APINetbios(ref Ncb);
lenum = (LANA_ENUM)MarshalPtrToStructure(Ncbncb_buffer, typeof(LANA_ENUM));
MarshalFreeHGlobal(Ncbncb_buffer);
if(uRetCode != (short)NCBCONSTNRC_GOODRET)
return "";
for(int i=0; i < lenumlength ;i++)
{
Ncbncb_command = (byte)NCBCONSTNCBRESET;
Ncbncb_lana_num = lenumlana[i];
uRetCode = Win32APINetbios(ref Ncb);
if(uRetCode != (short)NCBCONSTNRC_GOODRET)
return "";
Ncbncb_command = (byte)NCBCONSTNCBASTAT;
Ncbncb_lana_num = lenumlana[i];
Ncbncb_callname[0]=(byte)'';
cb = MarshalSizeOf(typeof(ADAPTER_STATUS)) + MarshalSizeOf(typeof(NAME_BUFFER))(int)NCBCONSTNUM_NAMEBUF;
Ncbncb_buffer = MarshalAllocHGlobal(cb);
Ncbncb_length = (ushort)cb;
uRetCode = Win32APINetbios(ref Ncb);
adapteradapt = (ADAPTER_STATUS)MarshalPtrToStructure(Ncbncb_buffer, typeof(ADAPTER_STATUS));
MarshalFreeHGlobal(Ncbncb_buffer);
if (uRetCode == (short)NCBCONSTNRC_GOODRET)
{
if(i>0)
addr += ":";
addr = stringFormat("{0,2:X}{1,2:X}{2,2:X}{3,2:X}{4,2:X}{5,2:X}",
adapteradaptadapter_address[0],
adapteradaptadapter_address[1],
adapteradaptadapter_address[2],
adapteradaptadapter_address[3],
adapteradaptadapter_address[4],
adapteradaptadapter_address[5]);
}
}
}
catch
{
}
return addrReplace(' ', '0');
}
}
首先需添加对SystemManagement的引用。
[c-sharp] view plain copy
using System;
using SystemRuntimeInteropServices;
using SystemManagement;
namespace Hardware
{
/// <summary>
/// HardwareInfo 的摘要说明。
/// </summary>
public class HardwareInfo
{
//取机器名
public string GetHostName()
{
return SystemNetDnsGetHostName();
}
//取CPU编号
public String GetCpuID()
{
try
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mcGetInstances();
String strCpuID = null;
foreach (ManagementObject mo in moc)
{
strCpuID = moProperties["ProcessorId"]ValueToString();
break;
}
return strCpuID;
}
catch
{
return "";
}
}//end method
//取第一块硬盘编号
public String GetHardDiskID()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT FROM Win32_PhysicalMedia");
String strHardDiskID = null;
foreach (ManagementObject mo in searcherGet())
{
strHardDiskID = mo["SerialNumber"]ToString()Trim();
break;
}
return strHardDiskID;
}
catch
{
return "";
}
}//end
public enum NCBCONST
{
NCBNAMSZ = 16, / absolute length of a net name /
MAX_LANA = 254, / lana's in range 0 to MAX_LANA inclusive /
NCBENUM = 0x37, / NCB ENUMERATE LANA NUMBERS /
NRC_GOODRET = 0x00, / good return /
NCBRESET = 0x32, / NCB RESET /
NCBASTAT = 0x33, / NCB ADAPTER STATUS /
NUM_NAMEBUF = 30, / Number of NAME's BUFFER /
}
[StructLayout(LayoutKindSequential)]
public struct ADAPTER_STATUS
{
[MarshalAs(UnmanagedTypeByValArray, SizeConst = 6)]
public byte[] adapter_address;
public byte rev_major;
public byte reserved0;
public byte adapter_type;
public byte rev_minor;
public ushort duration;
public ushort frmr_recv;
public ushort frmr_xmit;
public ushort iframe_recv_err;
public ushort xmit_aborts;
public uint xmit_success;
public uint recv_success;
public ushort iframe_xmit_err;
public ushort recv_buff_unavail;
public ushort t1_timeouts;
public ushort ti_timeouts;
public uint reserved1;
public ushort free_ncbs;
public ushort max_cfg_ncbs;
public ushort max_ncbs;
public ushort xmit_buf_unavail;
public ushort max_dgram_size;
public ushort pending_sess;
public ushort max_cfg_sess;
public ushort max_sess;
public ushort max_sess_pkt_size;
public ushort name_count;
}
[StructLayout(LayoutKindSequential)]
public struct NAME_BUFFER
{
[MarshalAs(UnmanagedTypeByValArray, SizeConst = (int)NCBCONSTNCBNAMSZ)]
public byte[] name;
public byte name_num;
public byte name_flags;
}
[StructLayout(LayoutKindSequential)]
public struct NCB
{
public byte ncb_command;
public byte ncb_retcode;
public byte ncb_lsn;
public byte ncb_num;
public IntPtr ncb_buffer;
public ushort ncb_length;
[MarshalAs(UnmanagedTypeByValArray, SizeConst = (int)NCBCONSTNCBNAMSZ)]
public byte[] ncb_callname;
[MarshalAs(UnmanagedTypeByValArray, SizeConst = (int)NCBCONSTNCBNAMSZ)]
public byte[] ncb_name;
public byte ncb_rto;
public byte ncb_sto;
public IntPtr ncb_post;
public byte ncb_lana_num;
public byte ncb_cmd_cplt;
[MarshalAs(UnmanagedTypeByValArray, SizeConst = 10)]
public byte[] ncb_reserve;
public IntPtr ncb_event;
}
[StructLayout(LayoutKindSequential)]
public struct LANA_ENUM
{
public byte length;
[MarshalAs(UnmanagedTypeByValArray, SizeConst = (int)NCBCONSTMAX_LANA)]
public byte[] lana;
}
[StructLayout(LayoutKindAuto)]
public struct ASTAT
{
public ADAPTER_STATUS adapt;
[MarshalAs(UnmanagedTypeByValArray, SizeConst = (int)NCBCONSTNUM_NAMEBUF)]
public NAME_BUFFER[] NameBuff;
}
public class Win32API
{
[DllImport("NETAPI32DLL")]
public static extern char Netbios(ref NCB ncb);
}
public string GetMacAddress()
{
string addr = "";
try
{
int cb;
ASTAT adapter;
NCB Ncb = new NCB();
char uRetCode;
LANA_ENUM lenum;
Ncbncb_command = (byte)NCBCONSTNCBENUM;
cb = MarshalSizeOf(typeof(LANA_ENUM));
Ncbncb_buffer = MarshalAllocHGlobal(cb);
Ncbncb_length = (ushort)cb;
uRetCode = Win32APINetbios(ref Ncb);
lenum = (LANA_ENUM)MarshalPtrToStructure(Ncbncb_buffer, typeof(LANA_ENUM));
MarshalFreeHGlobal(Ncbncb_buffer);
if (uRetCode != (short)NCBCONSTNRC_GOODRET)
return "";
for (int i = 0; i < lenumlength; i++)
{
Ncbncb_command = (byte)NCBCONSTNCBRESET;
Ncbncb_lana_num = lenumlana[i];
uRetCode = Win32APINetbios(ref Ncb);
if (uRetCode != (short)NCBCONSTNRC_GOODRET)
return "";
Ncbncb_command = (byte)NCBCONSTNCBASTAT;
Ncbncb_lana_num = lenumlana[i];
Ncbncb_callname[0] = (byte)'';
cb = MarshalSizeOf(typeof(ADAPTER_STATUS)) + MarshalSizeOf(typeof(NAME_BUFFER)) (int)NCBCONSTNUM_NAMEBUF;
Ncbncb_buffer = MarshalAllocHGlobal(cb);
Ncbncb_length = (ushort)cb;
uRetCode = Win32APINetbios(ref Ncb);
adapteradapt = (ADAPTER_STATUS)MarshalPtrToStructure(Ncbncb_buffer, typeof(ADAPTER_STATUS));
MarshalFreeHGlobal(Ncbncb_buffer);
if (uRetCode == (short)NCBCONSTNRC_GOODRET)
{
if (i > 0)
addr += ":";
addr = stringFormat("{0,2:X}{1,2:X}{2,2:X}{3,2:X}{4,2:X}{5,2:X}",
adapteradaptadapter_address[0],
adapteradaptadapter_address[1],
adapteradaptadapter_address[2],
adapteradaptadapter_address[3],
adapteradaptadapter_address[4],
adapteradaptadapter_address[5]);
}
}
}
catch
{ }
return addrReplace(' ', '0');
}
}
}
使用方法举例:
[c-sharp] view plain copy
//获取硬盘序列号
HardwareHardwareInfo hardwareInfo = new HardwareHardwareInfo();
string hardDiskID = hardwareInfoGetHardDiskID();
SystemConsoleWriteLine(hardDiskID);
//获取CPU序列号
string cpuID = hardwareInfoGetCpuID();
SystemConsoleWriteLine(cpuID);
//获取硬盘序列号HardwareHardwareInfo hardwareInfo = new HardwareHardwareInfo();string hardDiskID = hardwareInfoGetHardDiskID();SystemConsoleWriteLine(hardDiskID);//获取CPU序列号string cpuID = hardwareInfoGetCpuID();SystemConsoleWriteLine(cpuID);
string GetCpuID()
{
try
{
//获取CPU序列号代码
string cpuInfo = "";//cpu序列号
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mcGetInstances();
foreach(ManagementObject mo in moc)
{
cpuInfo = moProperties["ProcessorId"]ValueToString();
}
moc=null;
mc=null;
return cpuInfo;
}
catch
{
return "unknow";
}
finally
{
}
}
以上就是关于c#中如何获得 cpu型号全部的内容,包括:c#中如何获得 cpu型号、C#如何获取客户端CPU,硬盘,MAC序列号、如何破解c#获取cpu id代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)