C#程序获得cpu-硬盘的序列号

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

使用c#获得cpu,硬盘的序列号(源码)出处:首先在项目中选中右键“引用”→“添加引用”→打开一个界面,切换到.NET选项卡,添//加System.Management“确定”即可。如下图:usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Management;namespaceHardware{///summary///Hardware_Mac的摘要说明。////summarypublicclassHardwareInfo{//取机器名publicstringGetHostName(){returnSystem.Net.Dns.GetHostName();}//取CPU编号publicStringGetCpuID(){try{ManagementClassmc=newManagementClass(Win32_Processor);ManagementObjectCollectionmoc=mc.GetInstances();StringstrCpuID=null;foreach(ManagementObjectmoinmoc){strCpuID=mo.Properties[ProcessorId].Value.ToString();break;}returnstrCpuID;}catch{return;}}//endmethod//取第一块硬盘编号publicStringGetHardDiskID(){try{ManagementObjectSearchersearcher=newManagementObjectSearcher(SELECT*FROMWin32_PhysicalMedia);StringstrHardDiskID=null;foreach(ManagementObjectmoinsearcher.Get()){strHardDiskID=mo[SerialNumber].ToString().Trim();break;}returnstrHardDiskID;}catch{return;}}//endpublicenumNCBCONST{NCBNAMSZ=16,/*absolutelengthofanetname*/MAX_LANA=254,/*lana'sinrange0toMAX_LANAinclusive*/NCBENUM=0x37,/*NCBENUMERATELANANUMBERS*/NRC_GOODRET=0x00,/*goodreturn*/NCBRESET=0x32,/*NCBRESET*/NCBASTAT=0x33,/*NCBADAPTERSTATUS*/NUM_NAMEBUF=30,/*NumberofNAME'sBUFFER*/}[StructLayout(LayoutKind.Sequential)]publicstructADAPTER_STATUS{[MarshalAs(UnmanagedType.ByValArray,SizeConst=6)]publicbyte[]adapter_address;publicbyterev_major;publicbytereserved0;publicbyteadapter_type;publicbyterev_minor;publicushortduration;publicushortfrmr_recv;publicushortfrmr_xmit;publicushortiframe_recv_err;publicushortxmit_aborts;publicuintxmit_success;publicuintrecv_success;publicushortiframe_xmit_err;publicushortrecv_buff_unavail;publicushortt1_timeouts;publicushortti_timeouts;publicuintreserved1;publicushortfree_ncbs;publicushortmax_cfg_ncbs;publicushortmax_ncbs;publicushortxmit_buf_unavail;publicushortmax_dgram_size;publicushortpending_sess;publicushortmax_cfg_sess;publicushortmax_sess;publicushortmax_sess_pkt_size;publicushortname_count;}[StructLayout(LayoutKind.Sequential)]publicstructNAME_BUFFER{[MarshalAs(UnmanagedType.ByValArray,SizeConst=(int)NCBCONST.NCBNAMSZ)]publicbyte[]name;publicbytename_num;publicbytename_flags;}[StructLayout(LayoutKind.Sequential)]publicstructNCB{publicbytencb_command;publicbytencb_retcode;publicbytencb_lsn;publicbytencb_num;publicIntPtrncb_buffer;publicushortncb_length;[MarshalAs(UnmanagedType.ByValArray,SizeConst=(int)NCBCONST.NCBNAMSZ)]publicbyte[]ncb_callname;[MarshalAs(UnmanagedType.ByValArray,SizeConst=(int)NCBCONST.NCBNAMSZ)]publicbyte[]ncb_name;publicbytencb_rto;publicbytencb_sto;publicIntPtrncb_post;publicbytencb_lana_num;publicbytencb_cmd_cplt;[MarshalAs(UnmanagedType.ByValArray,SizeConst=10)]publicbyte[]ncb_reserve;publicIntPtrncb_event;}[StructLayout(LayoutKind.Sequential)]publicstructLANA_ENUM{publicbytelength;[MarshalAs(UnmanagedType.ByValArray,SizeConst=(int)NCBCONST.MAX_LANA)]publicbyte[]lana;}[StructLayout(LayoutKind.Auto)]publicstructASTAT{publicADAPTER_STATUSadapt;[MarshalAs(UnmanagedType.ByValArray,SizeConst=(int)NCBCONST.NUM_NAMEBUF)]publicNAME_BUFFER[]NameBuff;}publicclassWin32API{[DllImport(NETAPI32.DLL)]publicstaticexterncharNetbios(refNCBncb);}publicstringGetMacAddress(){stringaddr=;try{intcb;ASTATadapter;NCBNcb=newNCB();charuRetCode;LANA_ENUMlenum;Ncb.ncb_command=(byte)NCBCONST.NCBENUM;cb=Marshal.SizeOf(typeof(LANA_ENUM));Ncb.ncb_buffer=Marshal.AllocHGlobal(cb);Ncb.ncb_length=(ushort)cb;uRetCode=Win32API.Netbios(refNcb);lenum=(LANA_ENUM)Marshal.PtrToStructure(Ncb.ncb_buffer,typeof(LANA_ENUM));Marshal.FreeHGlobal(Ncb.ncb_buffer);if(uRetCode!=(short)NCBCONST.NRC_GOODRET)return;for(inti=0;ilenum.length;i++){Ncb.ncb_command=(byte)NCBCONST.NCBRESET;Ncb.ncb_lana_num=lenum.lana[i];uRetCode=Win32API.Netbios(refNcb);if(uRetCode!=(short)NCBCONST.NRC_GOODRET)return;Ncb.ncb_command=(byte)NCBCONST.NCBASTAT;Ncb.ncb_lana_num=lenum.lana[i];Ncb.ncb_callname[0]=(byte)'*';cb=Marshal.SizeOf(typeof(ADAPTER_STATUS))+Marshal.SizeOf(typeof(NAME_BUFFER))*(int)NCBCONST.NUM_NAMEBUF;Ncb.ncb_buffer=Marshal.AllocHGlobal(cb);Ncb.ncb_length=(ushort)cb;uRetCode=Win32API.Netbios(refNcb);adapter.adapt=(ADAPTER_STATUS)Marshal.PtrToStructure(Ncb.ncb_buffer,typeof(ADAPTER_STATUS));Marshal.FreeHGlobal(Ncb.ncb_buffer);if(uRetCode==(short)NCBCONST.NRC_GOODRET){if(i0)addr+=:;addr=string.Format({0,2:X}{1,2:X}{2,2:X}{3,2:X}{4,2:X}{5,2:X},adapter.adapt.adapter_address[0],adapter.adapt.adapter_address[1],adapter.adapt.adapter_address[2],adapter.adapt.adapter_address[3],adapter.adapt.adapter_address[4],adapter.adapt.adapter_address[5]);}}}catch{}returnaddr.Replace('','0');}}}

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功