时间: 2020-11-21|23次围观|0 条评论

].Net中获取CPU编号
(轉)Net中获取CPU编号插图
using
 System;
(轉)Net中获取CPU编号插图

using
 System.Runtime.InteropServices;
(轉)Net中获取CPU编号插图

using
  System.Management;
(轉)Net中获取CPU编号插图

namespace
 Hardware
(轉)Net中获取CPU编号插图1(轉)Net中获取CPU编号插图2

(轉)Net中获取CPU编号插图3
{
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5 
/**//// <summary>
(轉)Net中获取CPU编号插图6 
/// Hardware_Mac 的摘要说明。
(轉)Net中获取CPU编号插图7 
/// </summary>

(轉)Net中获取CPU编号插图6 public class HardwareInfo
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5 
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6  
//取机器名 
(轉)Net中获取CPU编号插图6
  public string GetHostName()
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6   
return System.Net.Dns.GetHostName(); 
(轉)Net中获取CPU编号插图7  }

(轉)Net中获取CPU编号插图6  
//取CPU编号
(轉)Net中获取CPU编号插图6
  public String GetCpuID() 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6   
try
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6    ManagementClass mc 
= new ManagementClass("Win32_Processor");
(轉)Net中获取CPU编号插图6    ManagementObjectCollection moc 
= mc.GetInstances();
(轉)Net中获取CPU编号插图6      
(轉)Net中获取CPU编号插图6    String strCpuID 
= null ;
(轉)Net中获取CPU编号插图6    
foreach( ManagementObject mo in moc ) 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5    
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6     strCpuID 
= mo.Properties["ProcessorId"].Value.ToString();
(轉)Net中获取CPU编号插图6     
break
(轉)Net中获取CPU编号插图7    }

(轉)Net中获取CPU编号插图6    
return strCpuID;
(轉)Net中获取CPU编号插图7   }

(轉)Net中获取CPU编号插图6   
catch
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6    
return "";
(轉)Net中获取CPU编号插图7   }

(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图7  }
//end method
(轉)Net中获取CPU编号插图6 
(轉)Net中获取CPU编号插图6  
//取第一块硬盘编号
(轉)Net中获取CPU编号插图6
  public String GetHardDiskID() 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6   
try
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6    ManagementObjectSearcher searcher 
= new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
(轉)Net中获取CPU编号插图6    String strHardDiskID 
= null ;
(轉)Net中获取CPU编号插图6    
foreach(ManagementObject mo in searcher.Get()) 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5    
(轉)Net中获取CPU编号插图3{    
(轉)Net中获取CPU编号插图6     strHardDiskID 
= mo["SerialNumber"].ToString().Trim();
(轉)Net中获取CPU编号插图6     
break;          
(轉)Net中获取CPU编号插图7    }

(轉)Net中获取CPU编号插图6    
return strHardDiskID ;
(轉)Net中获取CPU编号插图7   }

(轉)Net中获取CPU编号插图6   
catch
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6    
return "";
(轉)Net中获取CPU编号插图7   }

(轉)Net中获取CPU编号插图7  }
//end 
(轉)Net中获取CPU编号插图6

(轉)Net中获取CPU编号插图6  
public enum NCBCONST 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   NCBNAMSZ   
=16,      /**//* absolute length of a net name         */ 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   MAX_LANA   
=254,      /**//* lana's in range 0 to MAX_LANA inclusive   */ 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   NCBENUM      
=0x37,      /**//* NCB ENUMERATE LANA NUMBERS            */ 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   NRC_GOODRET   
=0x00,      /**//* good return                              */ 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   NCBRESET    
=0x32,      /**//* NCB RESET                        */ 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   NCBASTAT    
=0x33,      /**//* NCB ADAPTER STATUS                  */ 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   NUM_NAMEBUF 
=30,      /**//* Number of NAME's BUFFER               */ 
(轉)Net中获取CPU编号插图7  }
 
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图6  [StructLayout(LayoutKind.Sequential)] 
(轉)Net中获取CPU编号插图6   
public struct ADAPTER_STATUS 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3
(轉)Net中获取CPU编号插图6   [MarshalAs(UnmanagedType.ByValArray, SizeConst
=6)] 
(轉)Net中获取CPU编号插图6   
public byte[] adapter_address; 
(轉)Net中获取CPU编号插图6   
public byte   rev_major;  
(轉)Net中获取CPU编号插图6   
public byte   reserved0;  
(轉)Net中获取CPU编号插图6   
public byte   adapter_type;  
(轉)Net中获取CPU编号插图6   
public byte   rev_minor;  
(轉)Net中获取CPU编号插图6   
public ushort    duration;  
(轉)Net中获取CPU编号插图6   
public ushort    frmr_recv;  
(轉)Net中获取CPU编号插图6   
public ushort    frmr_xmit;  
(轉)Net中获取CPU编号插图6   
public ushort    iframe_recv_err;  
(轉)Net中获取CPU编号插图6   
public ushort    xmit_aborts;  
(轉)Net中获取CPU编号插图6   
public uint   xmit_success;  
(轉)Net中获取CPU编号插图6   
public uint   recv_success;  
(轉)Net中获取CPU编号插图6   
public ushort    iframe_xmit_err;  
(轉)Net中获取CPU编号插图6   
public ushort    recv_buff_unavail;  
(轉)Net中获取CPU编号插图6   
public ushort    t1_timeouts;  
(轉)Net中获取CPU编号插图6   
public ushort    ti_timeouts;  
(轉)Net中获取CPU编号插图6   
public uint   reserved1;  
(轉)Net中获取CPU编号插图6   
public ushort    free_ncbs;  
(轉)Net中获取CPU编号插图6   
public ushort    max_cfg_ncbs;  
(轉)Net中获取CPU编号插图6   
public ushort    max_ncbs;  
(轉)Net中获取CPU编号插图6   
public ushort    xmit_buf_unavail;  
(轉)Net中获取CPU编号插图6   
public ushort    max_dgram_size;  
(轉)Net中获取CPU编号插图6   
public ushort    pending_sess;  
(轉)Net中获取CPU编号插图6   
public ushort    max_cfg_sess;  
(轉)Net中获取CPU编号插图6   
public ushort    max_sess;  
(轉)Net中获取CPU编号插图6   
public ushort    max_sess_pkt_size;  
(轉)Net中获取CPU编号插图6   
public ushort    name_count; 
(轉)Net中获取CPU编号插图7  }
 
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图6  [StructLayout(LayoutKind.Sequential)] 
(轉)Net中获取CPU编号插图6   
public struct NAME_BUFFER 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3{  
(轉)Net中获取CPU编号插图6   [MarshalAs(UnmanagedType.ByValArray, SizeConst
=(int)NCBCONST.NCBNAMSZ)] 
(轉)Net中获取CPU编号插图6   
public byte[] name; 
(轉)Net中获取CPU编号插图6   
public byte name_num;  
(轉)Net中获取CPU编号插图6   
public byte name_flags;  
(轉)Net中获取CPU编号插图7  }
 
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图6  [StructLayout(LayoutKind.Sequential)] 
(轉)Net中获取CPU编号插图6   
public struct NCB 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3{  
(轉)Net中获取CPU编号插图6   
public byte  ncb_command;  
(轉)Net中获取CPU编号插图6   
public byte  ncb_retcode;  
(轉)Net中获取CPU编号插图6   
public byte  ncb_lsn;  
(轉)Net中获取CPU编号插图6   
public byte  ncb_num;  
(轉)Net中获取CPU编号插图6   
public IntPtr ncb_buffer;  
(轉)Net中获取CPU编号插图6   
public ushort ncb_length;  
(轉)Net中获取CPU编号插图6   [MarshalAs(UnmanagedType.ByValArray, SizeConst
=(int)NCBCONST.NCBNAMSZ)] 
(轉)Net中获取CPU编号插图6   
public byte[]  ncb_callname;  
(轉)Net中获取CPU编号插图6   [MarshalAs(UnmanagedType.ByValArray, SizeConst
=(int)NCBCONST.NCBNAMSZ)] 
(轉)Net中获取CPU编号插图6   
public byte[]  ncb_name;  
(轉)Net中获取CPU编号插图6   
public byte  ncb_rto;  
(轉)Net中获取CPU编号插图6   
public byte  ncb_sto;  
(轉)Net中获取CPU编号插图6   
public IntPtr ncb_post;  
(轉)Net中获取CPU编号插图6   
public byte  ncb_lana_num;  
(轉)Net中获取CPU编号插图6   
public byte  ncb_cmd_cplt;  
(轉)Net中获取CPU编号插图6   [MarshalAs(UnmanagedType.ByValArray, SizeConst
=10)] 
(轉)Net中获取CPU编号插图6   
public byte[] ncb_reserve; 
(轉)Net中获取CPU编号插图6   
public IntPtr ncb_event; 
(轉)Net中获取CPU编号插图7  }
 
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图6  [StructLayout(LayoutKind.Sequential)] 
(轉)Net中获取CPU编号插图6   
public struct LANA_ENUM 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3{  
(轉)Net中获取CPU编号插图6   
public byte length;  
(轉)Net中获取CPU编号插图6   [MarshalAs(UnmanagedType.ByValArray, SizeConst
=(int)NCBCONST.MAX_LANA)] 
(轉)Net中获取CPU编号插图6   
public byte[] lana; 
(轉)Net中获取CPU编号插图7  }
 
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图6  [StructLayout(LayoutKind.Auto)] 
(轉)Net中获取CPU编号插图6   
public struct ASTAT 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3{  
(轉)Net中获取CPU编号插图6   
public ADAPTER_STATUS adapt; 
(轉)Net中获取CPU编号插图6   [MarshalAs(UnmanagedType.ByValArray, SizeConst
=(int)NCBCONST.NUM_NAMEBUF)] 
(轉)Net中获取CPU编号插图6   
public NAME_BUFFER[] NameBuff; 
(轉)Net中获取CPU编号插图7  }
 
(轉)Net中获取CPU编号插图6  
public class Win32API 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3
(轉)Net中获取CPU编号插图6   [DllImport(
"NETAPI32.DLL")] 
(轉)Net中获取CPU编号插图6   
public static extern char Netbios(ref NCB ncb); 
(轉)Net中获取CPU编号插图7  }
 
(轉)Net中获取CPU编号插图6  
(轉)Net中获取CPU编号插图6  
public string GetMacAddress() 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5  
(轉)Net中获取CPU编号插图3
(轉)Net中获取CPU编号插图6   
string addr=""
(轉)Net中获取CPU编号插图6   
try
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   
(轉)Net中获取CPU编号插图3{
(轉)Net中获取CPU编号插图6    
int cb; 
(轉)Net中获取CPU编号插图6    ASTAT adapter; 
(轉)Net中获取CPU编号插图6    NCB Ncb
=new NCB(); 
(轉)Net中获取CPU编号插图6    
char uRetCode; 
(轉)Net中获取CPU编号插图6    LANA_ENUM lenum; 
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图6    Ncb.ncb_command 
= (byte)NCBCONST.NCBENUM; 
(轉)Net中获取CPU编号插图6    cb 
= Marshal.SizeOf(typeof(LANA_ENUM)); 
(轉)Net中获取CPU编号插图6    Ncb.ncb_buffer 
= Marshal.AllocHGlobal(cb); 
(轉)Net中获取CPU编号插图6    Ncb.ncb_length 
= (ushort)cb; 
(轉)Net中获取CPU编号插图6    uRetCode 
= Win32API.Netbios(ref Ncb); 
(轉)Net中获取CPU编号插图6    lenum 
= (LANA_ENUM)Marshal.PtrToStructure(Ncb.ncb_buffer, typeof(LANA_ENUM)); 
(轉)Net中获取CPU编号插图6    Marshal.FreeHGlobal(Ncb.ncb_buffer); 
(轉)Net中获取CPU编号插图6    
if(uRetCode != (short)NCBCONST.NRC_GOODRET) 
(轉)Net中获取CPU编号插图6     
return ""
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图6    
for(int i=0; i < lenum.length ;i++
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5    
(轉)Net中获取CPU编号插图3
(轉)Net中获取CPU编号插图6     Ncb.ncb_command 
= (byte)NCBCONST.NCBRESET; 
(轉)Net中获取CPU编号插图6     Ncb.ncb_lana_num 
= lenum.lana[i]; 
(轉)Net中获取CPU编号插图6     uRetCode 
= Win32API.Netbios(ref Ncb); 
(轉)Net中获取CPU编号插图6     
if(uRetCode != (short)NCBCONST.NRC_GOODRET) 
(轉)Net中获取CPU编号插图6      
return ""
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图6     Ncb.ncb_command 
= (byte)NCBCONST.NCBASTAT; 
(轉)Net中获取CPU编号插图6     Ncb.ncb_lana_num 
= lenum.lana[i]; 
(轉)Net中获取CPU编号插图6     Ncb.ncb_callname[
0]=(byte)'*'
(轉)Net中获取CPU编号插图6     cb 
= Marshal.SizeOf(typeof(ADAPTER_STATUS)) + Marshal.SizeOf(typeof(NAME_BUFFER))*(int)NCBCONST.NUM_NAMEBUF; 
(轉)Net中获取CPU编号插图6     Ncb.ncb_buffer 
= Marshal.AllocHGlobal(cb); 
(轉)Net中获取CPU编号插图6     Ncb.ncb_length 
= (ushort)cb; 
(轉)Net中获取CPU编号插图6     uRetCode 
= Win32API.Netbios(ref Ncb); 
(轉)Net中获取CPU编号插图6     adapter.adapt 
= (ADAPTER_STATUS)Marshal.PtrToStructure(Ncb.ncb_buffer, typeof(ADAPTER_STATUS)); 
(轉)Net中获取CPU编号插图6     Marshal.FreeHGlobal(Ncb.ncb_buffer); 
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图6     
if (uRetCode == (short)NCBCONST.NRC_GOODRET) 
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5     
(轉)Net中获取CPU编号插图3
(轉)Net中获取CPU编号插图6      
if(i>0
(轉)Net中获取CPU编号插图6       addr 
+= ":"
(轉)Net中获取CPU编号插图6      addr 
= string.Format("{0,2:X}{1,2:X}{2,2:X}{3,2:X}{4,2:X}{5,2:X}"
(轉)Net中获取CPU编号插图6       adapter.adapt.adapter_address[
0], 
(轉)Net中获取CPU编号插图6       adapter.adapt.adapter_address[
1], 
(轉)Net中获取CPU编号插图6       adapter.adapt.adapter_address[
2], 
(轉)Net中获取CPU编号插图6       adapter.adapt.adapter_address[
3], 
(轉)Net中获取CPU编号插图6       adapter.adapt.adapter_address[
4], 
(轉)Net中获取CPU编号插图6       adapter.adapt.adapter_address[
5]); 
(轉)Net中获取CPU编号插图7     }
 
(轉)Net中获取CPU编号插图7    }
 
(轉)Net中获取CPU编号插图7   }

(轉)Net中获取CPU编号插图6   
catch
(轉)Net中获取CPU编号插图4(轉)Net中获取CPU编号插图5   
(轉)Net中获取CPU编号插图3{}
(轉)Net中获取CPU编号插图6   
return addr.Replace(' ''0'); 
(轉)Net中获取CPU编号插图7  }
 
(轉)Net中获取CPU编号插图6
(轉)Net中获取CPU编号插图7 }

(轉)Net中获取CPU编号插图8}


转载于:https://www.cnblogs.com/Tonyyang/archive/2007/04/24/725734.html

原文链接:https://blog.csdn.net/weixin_30342827/article/details/98421658

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《(轉)Net中获取CPU编号
   

还没有人抢沙发呢~