请教怎c 获取调用堆栈API取CPU或硬盘系列

拒绝访问 | www. | 百度云加速
请打开cookies.
此网站 (www.) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(387dc8a-ua98).
重新安装浏览器,或使用别的浏览器Posts - 270,
Articles - 0,
Comments - 2037
23:18 by 破狼, ... 阅读,
首先需添加对System.Management的引用。
view plaincopy to clipboardprint?using S&&& using System.Runtime.InteropS&&& using System.M&&& & namespace Hardware&&& {&&& &&& /// &summary&&&& &&& /// HardwareInfo 的摘要说明。&&& &&& /// &/summary&&&& &&& public class HardwareInfo&&& &&& {&&& &&&&&&& //取机器名&&&& &&&&&&& public string GetHostName()&&& &&&&&&& {&&& &&&&&&&&&&& return System.Net.Dns.GetHostName();&&& &&&&&&& }&&& &&&&&&& //取CPU编号&&& &&&&&&& public String GetCpuID()&&& &&&&&&& {&&& &&&&&&&&&&& try&&& &&&&&&&&&&& {&&& &&&&&&&&&&&&&&& ManagementClass mc = new ManagementClass("Win32_Processor");&&& &&&&&&&&&&&&&&& ManagementObjectCollection moc = mc.GetInstances();&&& & &&&&&&&&&&&&&&& String strCpuID =&&& &&&&&&&&&&&&&&& foreach (ManagementObject mo in moc)&&& &&&&&&&&&&&&&&& {&&& &&&&&&&&&&&&&&&&&&& strCpuID = mo.Properties["ProcessorId"].Value.ToString();&&& &&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& }&&& &&&&&&&&&&&&&&& return strCpuID;&&& &&&&&&&&&&& }&&& &&&&&&&&&&& catch&&& &&&&&&&&&&& {&&& &&&&&&&&&&&&&&& return "";&&& &&&&&&&&&&& }&&& & &&&&&&& }//end method&&& & &&&&&&& //取第一块硬盘编号&&& &&&&&&& public String GetHardDiskID()&&& &&&&&&& {&&& &&&&&&&&&&& try&&& &&&&&&&&&&& {&&& &&&&&&&&&&&&&&& ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");&&& &&&&&&&&&&&&&&& String strHardDiskID =&&& &&&&&&&&&&&&&&& foreach (ManagementObject mo in searcher.Get())&&& &&&&&&&&&&&&&&& {&&& &&&&&&&&&&&&&&&&&&& strHardDiskID = mo["SerialNumber"].ToString().Trim();&&& &&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& }&&& &&&&&&&&&&&&&&& 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(LayoutKind.Sequential)]&&& &&&&&&& public struct ADAPTER_STATUS&&& &&&&&&& {&&& &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]&&& &&&&&&&&&&& public byte[] adapter_&&& &&&&&&&&&&& public byte rev_&&& &&&&&&&&&&& public byte reserved0;&&& &&&&&&&&&&& public byte adapter_&&& &&&&&&&&&&& public byte rev_&&& &&&&&&&&&&& pu&&& &&&&&&&&&&& public ushort frmr_&&& &&&&&&&&&&& public ushort frmr_&&& &&&&&&&&&&& public ushort iframe_recv_&&& &&&&&&&&&&& public ushort xmit_&&& &&&&&&&&&&& public uint xmit_&&& &&&&&&&&&&& public uint recv_&&& &&&&&&&&&&& public ushort iframe_xmit_&&& &&&&&&&&&&& public ushort recv_buff_&&& &&&&&&&&&&& public ushort t1_&&& &&&&&&&&&&& public ushort ti_&&& &&&&&&&&&&& public uint reserved1;&&& &&&&&&&&&&& public ushort free_&&& &&&&&&&&&&& public ushort max_cfg_&&& &&&&&&&&&&& public ushort max_&&& &&&&&&&&&&& public ushort xmit_buf_&&& &&&&&&&&&&& public ushort max_dgram_&&& &&&&&&&&&&& public ushort pending_&&& &&&&&&&&&&& public ushort max_cfg_&&& &&&&&&&&&&& public ushort max_&&& &&&&&&&&&&& public ushort max_sess_pkt_&&& &&&&&&&&&&& public ushort name_&&& &&&&&&& }&&& & &&&&&&& [StructLayout(LayoutKind.Sequential)]&&& &&&&&&& public struct NAME_BUFFER&&& &&&&&&& {&&& &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.NCBNAMSZ)]&&& &&&&&&&&&&& public byte[]&&& &&&&&&&&&&& public byte name_&&& &&&&&&&&&&& public byte name_&&& &&&&&&& }&&& & &&&&&&& [StructLayout(LayoutKind.Sequential)]&&& &&&&&&& public struct NCB&&& &&&&&&& {&&& &&&&&&&&&&& public byte ncb_&&& &&&&&&&&&&& public byte ncb_&&& &&&&&&&&&&& public byte ncb_&&& &&&&&&&&&&& public byte ncb_&&& &&&&&&&&&&& public IntPtr ncb_&&& &&&&&&&&&&& public ushort ncb_&&& &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.NCBNAMSZ)]&&& &&&&&&&&&&& public byte[] ncb_&&& &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.NCBNAMSZ)]&&& &&&&&&&&&&& public byte[] ncb_&&& &&&&&&&&&&& public byte ncb_&&& &&&&&&&&&&& public byte ncb_&&& &&&&&&&&&&& public IntPtr ncb_&&& &&&&&&&&&&& public byte ncb_lana_&&& &&&&&&&&&&& public byte ncb_cmd_&&& &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]&&& &&&&&&&&&&& public byte[] ncb_&&& &&&&&&&&&&& public IntPtr ncb_&&& &&&&&&& }&&& & &&&&&&& [StructLayout(LayoutKind.Sequential)]&&& &&&&&&& public struct LANA_ENUM&&& &&&&&&& {&&& &&&&&&&&&&&&&& &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.MAX_LANA)]&&& &&&&&&&&&&& public byte[]&&& &&&&&&& }&&& & &&&&&&& [StructLayout(LayoutKind.Auto)]&&& &&&&&&& public struct ASTAT&&& &&&&&&& {&&& &&&&&&&&&&& public ADAPTER_STATUS&&& &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.NUM_NAMEBUF)]&&& &&&&&&&&&&& public NAME_BUFFER[] NameB&&& &&&&&&& }&&& &&&&&&& public class Win32API&&& &&&&&&& {&&& &&&&&&&&&&& [DllImport("NETAPI32.DLL")]&&& &&&&&&&&&&& public static extern char Netbios(ref NCB ncb);&&& &&&&&&& }&&& & &&&&&&& public string GetMacAddress()&&& &&&&&&& {&&& &&&&&&&&&&& string addr = "";&&& &&&&&&&&&&& try&&& &&&&&&&&&&& {&&& &&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& ASTAT&&& &&&&&&&&&&&&&&& NCB Ncb = new NCB();&&& &&&&&&&&&&&&&&& char uRetC&&& &&&&&&&&&&&&&&& LANA_ENUM&&& & &&&&&&&&&&&&&&& Ncb.ncb_command = (byte)NCBCONST.NCBENUM;&&& &&&&&&&&&&&&&&& cb = Marshal.SizeOf(typeof(LANA_ENUM));&&& &&&&&&&&&&&&&&& Ncb.ncb_buffer = Marshal.AllocHGlobal(cb);&&& &&&&&&&&&&&&&&& Ncb.ncb_length = (ushort)&&& &&&&&&&&&&&&&&& uRetCode = Win32API.Netbios(ref Ncb);&&& &&&&&&&&&&&&&&& lenum = (LANA_ENUM)Marshal.PtrToStructure(Ncb.ncb_buffer, typeof(LANA_ENUM));&&& &&&&&&&&&&&&&&& Marshal.FreeHGlobal(Ncb.ncb_buffer);&&& &&&&&&&&&&&&&&& if (uRetCode != (short)NCBCONST.NRC_GOODRET)&&& &&&&&&&&&&&&&&&&&&& return "";&&& & &&&&&&&&&&&&&&& for (int i = 0; i & lenum. i++)&&& &&&&&&&&&&&&&&& {&&& &&&&&&&&&&&&&&&&&&& Ncb.ncb_command = (byte)NCBCONST.NCBRESET;&&& &&&&&&&&&&&&&&&&&&& Ncb.ncb_lana_num = lenum.lana[i];&&& &&&&&&&&&&&&&&&&&&& uRetCode = Win32API.Netbios(ref Ncb);&&& &&&&&&&&&&&&&&&&&&& 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)&&& &&&&&&&&&&&&&&&&&&& uRetCode = Win32API.Netbios(ref Ncb);&&& &&&&&&&&&&&&&&&&&&& adapter.adapt = (ADAPTER_STATUS)Marshal.PtrToStructure(Ncb.ncb_buffer, typeof(ADAPTER_STATUS));&&& &&&&&&&&&&&&&&&&&&& Marshal.FreeHGlobal(Ncb.ncb_buffer);&&& & &&&&&&&&&&&&&&&&&&& if (uRetCode == (short)NCBCONST.NRC_GOODRET)&&& &&&&&&&&&&&&&&&&&&& {&&& &&&&&&&&&&&&&&&&&&&&&&& if (i & 0)&&& &&&&&&&&&&&&&&&&&&&&&&&&&&& 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&&& &&&&&&&&&&& { }&&& &&&&&&&&&&& return addr.Replace(' ', '0');&&& &&&&&&& }&&& &&& }&&& }&& using S using System.Runtime.InteropS using System.M
namespace Hardware { &&& /// &summary& &&& /// HardwareInfo 的摘要说明。 &&& /// &/summary& &&& public class HardwareInfo &&& { &&&&&&& //取机器名& &&&&&&& public string GetHostName() &&&&&&& { &&&&&&&&&&& return System.Net.Dns.GetHostName(); &&&&&&& } &&&&&&& //取CPU编号 &&&&&&& public String GetCpuID() &&&&&&& { &&&&&&&&&&& try &&&&&&&&&&& { &&&&&&&&&&&&&&& ManagementClass mc = new ManagementClass("Win32_Processor"); &&&&&&&&&&&&&&& ManagementObjectCollection moc = mc.GetInstances();
&&&&&&&&&&&&&&& String strCpuID = &&&&&&&&&&&&&&& foreach (ManagementObject mo in moc) &&&&&&&&&&&&&&& { &&&&&&&&&&&&&&&&&&& strCpuID = mo.Properties["ProcessorId"].Value.ToString(); &&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& } &&&&&&&&&&&&&&& return strCpuID; &&&&&&&&&&& } &&&&&&&&&&& catch &&&&&&&&&&& { &&&&&&&&&&&&&&& return ""; &&&&&&&&&&& }
&&&&&&& }//end method
&&&&&&& //取第一块硬盘编号 &&&&&&& public String GetHardDiskID() &&&&&&& { &&&&&&&&&&& try &&&&&&&&&&& { &&&&&&&&&&&&&&& ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); &&&&&&&&&&&&&&& String strHardDiskID = &&&&&&&&&&&&&&& foreach (ManagementObject mo in searcher.Get()) &&&&&&&&&&&&&&& { &&&&&&&&&&&&&&&&&&& strHardDiskID = mo["SerialNumber"].ToString().Trim(); &&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& } &&&&&&&&&&&&&&& 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(LayoutKind.Sequential)] &&&&&&& public struct ADAPTER_STATUS &&&&&&& { &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] &&&&&&&&&&& public byte[] adapter_ &&&&&&&&&&& public byte rev_ &&&&&&&&&&& public byte reserved0; &&&&&&&&&&& public byte adapter_ &&&&&&&&&&& public byte rev_ &&&&&&&&&&& pu &&&&&&&&&&& public ushort frmr_ &&&&&&&&&&& public ushort frmr_ &&&&&&&&&&& public ushort iframe_recv_ &&&&&&&&&&& public ushort xmit_ &&&&&&&&&&& public uint xmit_ &&&&&&&&&&& public uint recv_ &&&&&&&&&&& public ushort iframe_xmit_ &&&&&&&&&&& public ushort recv_buff_ &&&&&&&&&&& public ushort t1_ &&&&&&&&&&& public ushort ti_ &&&&&&&&&&& public uint reserved1; &&&&&&&&&&& public ushort free_ &&&&&&&&&&& public ushort max_cfg_ &&&&&&&&&&& public ushort max_ &&&&&&&&&&& public ushort xmit_buf_ &&&&&&&&&&& public ushort max_dgram_ &&&&&&&&&&& public ushort pending_ &&&&&&&&&&& public ushort max_cfg_ &&&&&&&&&&& public ushort max_ &&&&&&&&&&& public ushort max_sess_pkt_ &&&&&&&&&&& public ushort name_ &&&&&&& }
&&&&&&& [StructLayout(LayoutKind.Sequential)] &&&&&&& public struct NAME_BUFFER &&&&&&& { &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.NCBNAMSZ)] &&&&&&&&&&& public byte[] &&&&&&&&&&& public byte name_ &&&&&&&&&&& public byte name_ &&&&&&& }
&&&&&&& [StructLayout(LayoutKind.Sequential)] &&&&&&& public struct NCB &&&&&&& { &&&&&&&&&&& public byte ncb_ &&&&&&&&&&& public byte ncb_ &&&&&&&&&&& public byte ncb_ &&&&&&&&&&& public byte ncb_ &&&&&&&&&&& public IntPtr ncb_ &&&&&&&&&&& public ushort ncb_ &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.NCBNAMSZ)] &&&&&&&&&&& public byte[] ncb_ &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.NCBNAMSZ)] &&&&&&&&&&& public byte[] ncb_ &&&&&&&&&&& public byte ncb_ &&&&&&&&&&& public byte ncb_ &&&&&&&&&&& public IntPtr ncb_ &&&&&&&&&&& public byte ncb_lana_ &&&&&&&&&&& public byte ncb_cmd_ &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] &&&&&&&&&&& public byte[] ncb_ &&&&&&&&&&& public IntPtr ncb_ &&&&&&& }
&&&&&&& [StructLayout(LayoutKind.Sequential)] &&&&&&& public struct LANA_ENUM &&&&&&& { &&&&&&&&&&& &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.MAX_LANA)] &&&&&&&&&&& public byte[] &&&&&&& }
&&&&&&& [StructLayout(LayoutKind.Auto)] &&&&&&& public struct ASTAT &&&&&&& { &&&&&&&&&&& public ADAPTER_STATUS &&&&&&&&&&& [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)NCBCONST.NUM_NAMEBUF)] &&&&&&&&&&& public NAME_BUFFER[] NameB &&&&&&& } &&&&&&& public class Win32API &&&&&&& { &&&&&&&&&&& [DllImport("NETAPI32.DLL")] &&&&&&&&&&& public static extern char Netbios(ref NCB ncb); &&&&&&& }
&&&&&&& public string GetMacAddress() &&&&&&& { &&&&&&&&&&& string addr = ""; &&&&&&&&&&& try &&&&&&&&&&& { &&&&&&&&&&&&&&& &&&&&&&&&&&&&&& ASTAT &&&&&&&&&&&&&&& NCB Ncb = new NCB(); &&&&&&&&&&&&&&& char uRetC &&&&&&&&&&&&&&& LANA_ENUM
&&&&&&&&&&&&&&& Ncb.ncb_command = (byte)NCBCONST.NCBENUM; &&&&&&&&&&&&&&& cb = Marshal.SizeOf(typeof(LANA_ENUM)); &&&&&&&&&&&&&&& Ncb.ncb_buffer = Marshal.AllocHGlobal(cb); &&&&&&&&&&&&&&& Ncb.ncb_length = (ushort) &&&&&&&&&&&&&&& uRetCode = Win32API.Netbios(ref Ncb); &&&&&&&&&&&&&&& lenum = (LANA_ENUM)Marshal.PtrToStructure(Ncb.ncb_buffer, typeof(LANA_ENUM)); &&&&&&&&&&&&&&& Marshal.FreeHGlobal(Ncb.ncb_buffer); &&&&&&&&&&&&&&& if (uRetCode != (short)NCBCONST.NRC_GOODRET) &&&&&&&&&&&&&&&&&&& return "";
&&&&&&&&&&&&&&& for (int i = 0; i & lenum. i++) &&&&&&&&&&&&&&& { &&&&&&&&&&&&&&&&&&& Ncb.ncb_command = (byte)NCBCONST.NCBRESET; &&&&&&&&&&&&&&&&&&& Ncb.ncb_lana_num = lenum.lana[i]; &&&&&&&&&&&&&&&&&&& uRetCode = Win32API.Netbios(ref Ncb); &&&&&&&&&&&&&&&&&&& 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) &&&&&&&&&&&&&&&&&&& uRetCode = Win32API.Netbios(ref Ncb); &&&&&&&&&&&&&&&&&&& adapter.adapt = (ADAPTER_STATUS)Marshal.PtrToStructure(Ncb.ncb_buffer, typeof(ADAPTER_STATUS)); &&&&&&&&&&&&&&&&&&& Marshal.FreeHGlobal(Ncb.ncb_buffer);
&&&&&&&&&&&&&&&&&&& if (uRetCode == (short)NCBCONST.NRC_GOODRET) &&&&&&&&&&&&&&&&&&& { &&&&&&&&&&&&&&&&&&&&&&& if (i & 0) &&&&&&&&&&&&&&&&&&&&&&&&&&& 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 &&&&&&&&&&& { } &&&&&&&&&&& return addr.Replace(' ', '0'); &&&&&&& } &&& } } &
使用方法举例:
view plaincopy to clipboardprint?//获取硬盘序列号&&& Hardware.HardwareInfo hardwareInfo = new Hardware.HardwareInfo();&&& string hardDiskID = hardwareInfo.GetHardDiskID();&&& System.Console.WriteLine(hardDiskID);&&& & //获取CPU序列号&&& string cpuID = hardwareInfo.GetCpuID();&&& System.Console.WriteLine(cpuID);&&& //获取硬盘序列号Hardware.HardwareInfo hardwareInfo = new Hardware.HardwareInfo();string hardDiskID = hardwareInfo.GetHardDiskID();System.Console.WriteLine(hardDiskID);//获取CPU序列号string cpuID = hardwareInfo.GetCpuID();System.Console.WriteLine(cpuID);&
本文转载自CSDN博客,http://blog.csdn.net/songkexin/archive//4916602.aspx请教怎调用API取CPU或硬盘系列 -PB- TryCatch
>> Content
请教怎调用API取CPU或硬盘系列
请教怎调用API取CPU或硬盘系列号,想用于软件注册用,各位还有没有其他好方法?
------Solutions------
Function&boolean&DiskID32(ref&string&model,ref&string&id)&library&"DiskID32.DLL"string&ls_disk1=space(32)string&ls_disk2=space(32)&string&ls_disk3diskid32(ls_disk1,ls_disk2)ls_disk3=right(trim(ls_disk2),len(trim(ls_disk2))&-&2)+mid(trim(ls_disk1),1,2)ls_disk3即为硬盘号
------Solutions------
------Solutions------
------Solutions------
我用DiskID32函数取得的是乱码,在PB10、XP系统环境下。不知道是什么原因?楼上能说说吗?
------Solutions------
获取CPU信息可以用PB的函数获得的吧PB的Environment&object&有关于CPU的属性,也有机器码的属性可以用于软件注册的吧君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
API函数获取硬盘物理序列号,api函数,api函数是什么,windows api函数,api 多少个函数,水晶序列号获取器,vba api函数,vb api函数,android 获取序列号,获取硬盘序列号,获取基带序列号失败
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
API函数获取硬盘物理序列号
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口用户名:破狼
文章数:184
评论数:122
访问量:94090
注册日期:
阅读量:1297
阅读量:3317
阅读量:441932
阅读量:1128125
51CTO推荐博文
首先需添加对System.Management的引用。
view&plaincopy&to&clipboardprint? &using&S&&&& &using&System.Runtime.InteropS&&&& &using&System.M&&&& &&& &namespace&Hardware&&&& &{&&&& &&&&&///&&summary&&&&& &&&&&///&HardwareInfo&的摘要说明。&&&& &&&&&///&&/summary&&&&& &&&&&public&class&HardwareInfo&&&& &&&&&{&&&& &&&&&&&&&//取机器名&&&&& &&&&&&&&&public&string&GetHostName()&&&& &&&&&&&&&{&&&& &&&&&&&&&&&&&return&System.Net.Dns.GetHostName();&&&& &&&&&&&&&}&&&& &&&&&&&&&//取CPU编号&&&& &&&&&&&&&public&String&GetCpuID()&&&& &&&&&&&&&{&&&& &&&&&&&&&&&&&try&&&& &&&&&&&&&&&&&{&&&& &&&&&&&&&&&&&&&&&ManagementClass&mc&=&new&ManagementClass(&Win32_Processor&);&&&& &&&&&&&&&&&&&&&&&ManagementObjectCollection&moc&=&mc.GetInstances();&&&& &&& &&&&&&&&&&&&&&&&&String&strCpuID&=&null;&&&& &&&&&&&&&&&&&&&&&foreach&(ManagementObject&mo&in&moc)&&&& &&&&&&&&&&&&&&&&&{&&&& &&&&&&&&&&&&&&&&&&&&&strCpuID&=&mo.Properties[&ProcessorId&].Value.ToString();&&&& &&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&}&&&& &&&&&&&&&&&&&&&&&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&searcher.Get())&&&& &&&&&&&&&&&&&&&&&{&&&& &&&&&&&&&&&&&&&&&&&&&strHardDiskID&=&mo[&SerialNumber&].ToString().Trim();&&&& &&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&}&&&& &&&&&&&&&&&&&&&&&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(LayoutKind.Sequential)]&&&& &&&&&&&&&public&struct&ADAPTER_STATUS&&&& &&&&&&&&&{&&&& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&6)]&&&& &&&&&&&&&&&&&public&byte[]&adapter_&&&& &&&&&&&&&&&&&public&byte&rev_&&&& &&&&&&&&&&&&&public&byte&reserved0;&&&& &&&&&&&&&&&&&public&byte&adapter_&&&& &&&&&&&&&&&&&public&byte&rev_&&&& &&&&&&&&&&&&&public&ushort&&&&& &&&&&&&&&&&&&public&ushort&frmr_&&&& &&&&&&&&&&&&&public&ushort&frmr_&&&& &&&&&&&&&&&&&public&ushort&iframe_recv_&&&& &&&&&&&&&&&&&public&ushort&xmit_&&&& &&&&&&&&&&&&&public&uint&xmit_&&&& &&&&&&&&&&&&&public&uint&recv_&&&& &&&&&&&&&&&&&public&ushort&iframe_xmit_&&&& &&&&&&&&&&&&&public&ushort&recv_buff_&&&& &&&&&&&&&&&&&public&ushort&t1_&&&& &&&&&&&&&&&&&public&ushort&ti_&&&& &&&&&&&&&&&&&public&uint&reserved1;&&&& &&&&&&&&&&&&&public&ushort&free_&&&& &&&&&&&&&&&&&public&ushort&max_cfg_&&&& &&&&&&&&&&&&&public&ushort&max_&&&& &&&&&&&&&&&&&public&ushort&xmit_buf_&&&& &&&&&&&&&&&&&public&ushort&max_dgram_&&&& &&&&&&&&&&&&&public&ushort&pending_&&&& &&&&&&&&&&&&&public&ushort&max_cfg_&&&& &&&&&&&&&&&&&public&ushort&max_&&&& &&&&&&&&&&&&&public&ushort&max_sess_pkt_&&&& &&&&&&&&&&&&&public&ushort&name_&&&& &&&&&&&&&}&&&& &&& &&&&&&&&&[StructLayout(LayoutKind.Sequential)]&&&& &&&&&&&&&public&struct&NAME_BUFFER&&&& &&&&&&&&&{&&&& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.NCBNAMSZ)]&&&& &&&&&&&&&&&&&public&byte[]&name;&&&& &&&&&&&&&&&&&public&byte&name_&&&& &&&&&&&&&&&&&public&byte&name_&&&& &&&&&&&&&}&&&& &&& &&&&&&&&&[StructLayout(LayoutKind.Sequential)]&&&& &&&&&&&&&public&struct&NCB&&&& &&&&&&&&&{&&&& &&&&&&&&&&&&&public&byte&ncb_&&&& &&&&&&&&&&&&&public&byte&ncb_&&&& &&&&&&&&&&&&&public&byte&ncb_&&&& &&&&&&&&&&&&&public&byte&ncb_&&&& &&&&&&&&&&&&&public&IntPtr&ncb_&&&& &&&&&&&&&&&&&public&ushort&ncb_&&&& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.NCBNAMSZ)]&&&& &&&&&&&&&&&&&public&byte[]&ncb_&&&& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.NCBNAMSZ)]&&&& &&&&&&&&&&&&&public&byte[]&ncb_&&&& &&&&&&&&&&&&&public&byte&ncb_&&&& &&&&&&&&&&&&&public&byte&ncb_&&&& &&&&&&&&&&&&&public&IntPtr&ncb_&&&& &&&&&&&&&&&&&public&byte&ncb_lana_&&&& &&&&&&&&&&&&&public&byte&ncb_cmd_&&&& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&10)]&&&& &&&&&&&&&&&&&public&byte[]&ncb_&&&& &&&&&&&&&&&&&public&IntPtr&ncb_&&&& &&&&&&&&&}&&&& &&& &&&&&&&&&[StructLayout(LayoutKind.Sequential)]&&&& &&&&&&&&&public&struct&LANA_ENUM&&&& &&&&&&&&&{&&&& &&&&&&&&&&&&&public&byte&&&&& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.MAX_LANA)]&&&& &&&&&&&&&&&&&public&byte[]&&&&& &&&&&&&&&}&&&& &&& &&&&&&&&&[StructLayout(LayoutKind.Auto)]&&&& &&&&&&&&&public&struct&ASTAT&&&& &&&&&&&&&{&&&& &&&&&&&&&&&&&public&ADAPTER_STATUS&&&&& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.NUM_NAMEBUF)]&&&& &&&&&&&&&&&&&public&NAME_BUFFER[]&NameB&&&& &&&&&&&&&}&&&& &&&&&&&&&public&class&Win32API&&&& &&&&&&&&&{&&&& &&&&&&&&&&&&&[DllImport(&NETAPI32.DLL&)]&&&& &&&&&&&&&&&&&public&static&extern&char&Netbios(ref&NCB&ncb);&&&& &&&&&&&&&}&&&& &&& &&&&&&&&&public&string&GetMacAddress()&&&& &&&&&&&&&{&&&& &&&&&&&&&&&&&string&addr&=&&&;&&&& &&&&&&&&&&&&&try&&&& &&&&&&&&&&&&&{&&&& &&&&&&&&&&&&&&&&&int&&&&& &&&&&&&&&&&&&&&&&ASTAT&&&&& &&&&&&&&&&&&&&&&&NCB&Ncb&=&new&NCB();&&&& &&&&&&&&&&&&&&&&&char&uRetC&&&& &&&&&&&&&&&&&&&&&LANA_ENUM&&&&& &&& &&&&&&&&&&&&&&&&&Ncb.ncb_command&=&(byte)NCBCONST.NCBENUM;&&&& &&&&&&&&&&&&&&&&&cb&=&Marshal.SizeOf(typeof(LANA_ENUM));&&&& &&&&&&&&&&&&&&&&&Ncb.ncb_buffer&=&Marshal.AllocHGlobal(cb);&&&& &&&&&&&&&&&&&&&&&Ncb.ncb_length&=&(ushort)&&&& &&&&&&&&&&&&&&&&&uRetCode&=&Win32API.Netbios(ref&Ncb);&&&& &&&&&&&&&&&&&&&&&lenum&=&(LANA_ENUM)Marshal.PtrToStructure(Ncb.ncb_buffer,&typeof(LANA_ENUM));&&&& &&&&&&&&&&&&&&&&&Marshal.FreeHGlobal(Ncb.ncb_buffer);&&&& &&&&&&&&&&&&&&&&&if&(uRetCode&!=&(short)NCBCONST.NRC_GOODRET)&&&& &&&&&&&&&&&&&&&&&&&&&return&&&;&&&& &&& &&&&&&&&&&&&&&&&&for&(int&i&=&0;&i&&&lenum.&i++)&&&& &&&&&&&&&&&&&&&&&{&&&& &&&&&&&&&&&&&&&&&&&&&Ncb.ncb_command&=&(byte)NCBCONST.NCBRESET;&&&& &&&&&&&&&&&&&&&&&&&&&Ncb.ncb_lana_num&=&lenum.lana[i];&&&& &&&&&&&&&&&&&&&&&&&&&uRetCode&=&Win32API.Netbios(ref&Ncb);&&&& &&&&&&&&&&&&&&&&&&&&&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)&&&& &&&&&&&&&&&&&&&&&&&&&uRetCode&=&Win32API.Netbios(ref&Ncb);&&&& &&&&&&&&&&&&&&&&&&&&&adapter.adapt&=&(ADAPTER_STATUS)Marshal.PtrToStructure(Ncb.ncb_buffer,&typeof(ADAPTER_STATUS));&&&& &&&&&&&&&&&&&&&&&&&&&Marshal.FreeHGlobal(Ncb.ncb_buffer);&&&& &&& &&&&&&&&&&&&&&&&&&&&&if&(uRetCode&==&(short)NCBCONST.NRC_GOODRET)&&&& &&&&&&&&&&&&&&&&&&&&&{&&&& &&&&&&&&&&&&&&&&&&&&&&&&&if&(i&&&0)&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&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&&&& &&&&&&&&&&&&&{&}&&&& &&&&&&&&&&&&&return&addr.Replace('&',&'0');&&&& &&&&&&&&&}&&&& &&&&&}&&&& &}&&& &using&S& &using&System.Runtime.InteropS& &using&System.M& &&namespace&Hardware& &{& &&&&&///&&summary&& &&&&&///&HardwareInfo&的摘要说明。& &&&&&///&&/summary&& &&&&&public&class&HardwareInfo& &&&&&{& &&&&&&&&&//取机器名&& &&&&&&&&&public&string&GetHostName()& &&&&&&&&&{& &&&&&&&&&&&&&return&System.Net.Dns.GetHostName();& &&&&&&&&&}& &&&&&&&&&//取CPU编号& &&&&&&&&&public&String&GetCpuID()& &&&&&&&&&{& &&&&&&&&&&&&&try& &&&&&&&&&&&&&{& &&&&&&&&&&&&&&&&&ManagementClass&mc&=&new&ManagementClass(&Win32_Processor&);& &&&&&&&&&&&&&&&&&ManagementObjectCollection&moc&=&mc.GetInstances();& &&&&&&&&&&&&&&&&&&String&strCpuID&=&null;& &&&&&&&&&&&&&&&&&foreach&(ManagementObject&mo&in&moc)& &&&&&&&&&&&&&&&&&{& &&&&&&&&&&&&&&&&&&&&&strCpuID&=&mo.Properties[&ProcessorId&].Value.ToString();& &&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&}& &&&&&&&&&&&&&&&&&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&searcher.Get())& &&&&&&&&&&&&&&&&&{& &&&&&&&&&&&&&&&&&&&&&strHardDiskID&=&mo[&SerialNumber&].ToString().Trim();& &&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&}& &&&&&&&&&&&&&&&&&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(LayoutKind.Sequential)]& &&&&&&&&&public&struct&ADAPTER_STATUS& &&&&&&&&&{& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&6)]& &&&&&&&&&&&&&public&byte[]&adapter_& &&&&&&&&&&&&&public&byte&rev_& &&&&&&&&&&&&&public&byte&reserved0;& &&&&&&&&&&&&&public&byte&adapter_& &&&&&&&&&&&&&public&byte&rev_& &&&&&&&&&&&&&public&ushort&& &&&&&&&&&&&&&public&ushort&frmr_& &&&&&&&&&&&&&public&ushort&frmr_& &&&&&&&&&&&&&public&ushort&iframe_recv_& &&&&&&&&&&&&&public&ushort&xmit_& &&&&&&&&&&&&&public&uint&xmit_& &&&&&&&&&&&&&public&uint&recv_& &&&&&&&&&&&&&public&ushort&iframe_xmit_& &&&&&&&&&&&&&public&ushort&recv_buff_& &&&&&&&&&&&&&public&ushort&t1_& &&&&&&&&&&&&&public&ushort&ti_& &&&&&&&&&&&&&public&uint&reserved1;& &&&&&&&&&&&&&public&ushort&free_& &&&&&&&&&&&&&public&ushort&max_cfg_& &&&&&&&&&&&&&public&ushort&max_& &&&&&&&&&&&&&public&ushort&xmit_buf_& &&&&&&&&&&&&&public&ushort&max_dgram_& &&&&&&&&&&&&&public&ushort&pending_& &&&&&&&&&&&&&public&ushort&max_cfg_& &&&&&&&&&&&&&public&ushort&max_& &&&&&&&&&&&&&public&ushort&max_sess_pkt_& &&&&&&&&&&&&&public&ushort&name_& &&&&&&&&&}& &&&&&&&&&&[StructLayout(LayoutKind.Sequential)]& &&&&&&&&&public&struct&NAME_BUFFER& &&&&&&&&&{& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.NCBNAMSZ)]& &&&&&&&&&&&&&public&byte[]&name;& &&&&&&&&&&&&&public&byte&name_& &&&&&&&&&&&&&public&byte&name_& &&&&&&&&&}& &&&&&&&&&&[StructLayout(LayoutKind.Sequential)]& &&&&&&&&&public&struct&NCB& &&&&&&&&&{& &&&&&&&&&&&&&public&byte&ncb_& &&&&&&&&&&&&&public&byte&ncb_& &&&&&&&&&&&&&public&byte&ncb_& &&&&&&&&&&&&&public&byte&ncb_& &&&&&&&&&&&&&public&IntPtr&ncb_& &&&&&&&&&&&&&public&ushort&ncb_& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.NCBNAMSZ)]& &&&&&&&&&&&&&public&byte[]&ncb_& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.NCBNAMSZ)]& &&&&&&&&&&&&&public&byte[]&ncb_& &&&&&&&&&&&&&public&byte&ncb_& &&&&&&&&&&&&&public&byte&ncb_& &&&&&&&&&&&&&public&IntPtr&ncb_& &&&&&&&&&&&&&public&byte&ncb_lana_& &&&&&&&&&&&&&public&byte&ncb_cmd_& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&10)]& &&&&&&&&&&&&&public&byte[]&ncb_& &&&&&&&&&&&&&public&IntPtr&ncb_& &&&&&&&&&}& &&&&&&&&&&[StructLayout(LayoutKind.Sequential)]& &&&&&&&&&public&struct&LANA_ENUM& &&&&&&&&&{& &&&&&&&&&&&&&public&byte&& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.MAX_LANA)]& &&&&&&&&&&&&&public&byte[]&& &&&&&&&&&}& &&&&&&&&&&[StructLayout(LayoutKind.Auto)]& &&&&&&&&&public&struct&ASTAT& &&&&&&&&&{& &&&&&&&&&&&&&public&ADAPTER_STATUS&& &&&&&&&&&&&&&[MarshalAs(UnmanagedType.ByValArray,&SizeConst&=&(int)NCBCONST.NUM_NAMEBUF)]& &&&&&&&&&&&&&public&NAME_BUFFER[]&NameB& &&&&&&&&&}& &&&&&&&&&public&class&Win32API& &&&&&&&&&{& &&&&&&&&&&&&&[DllImport(&NETAPI32.DLL&)]& &&&&&&&&&&&&&public&static&extern&char&Netbios(ref&NCB&ncb);& &&&&&&&&&}& &&&&&&&&&&public&string&GetMacAddress()& &&&&&&&&&{& &&&&&&&&&&&&&string&addr&=&&&;& &&&&&&&&&&&&&try& &&&&&&&&&&&&&{& &&&&&&&&&&&&&&&&&int&& &&&&&&&&&&&&&&&&&ASTAT&& &&&&&&&&&&&&&&&&&NCB&Ncb&=&new&NCB();& &&&&&&&&&&&&&&&&&char&uRetC& &&&&&&&&&&&&&&&&&LANA_ENUM&& &&&&&&&&&&&&&&&&&&Ncb.ncb_command&=&(byte)NCBCONST.NCBENUM;& &&&&&&&&&&&&&&&&&cb&=&Marshal.SizeOf(typeof(LANA_ENUM));& &&&&&&&&&&&&&&&&&Ncb.ncb_buffer&=&Marshal.AllocHGlobal(cb);& &&&&&&&&&&&&&&&&&Ncb.ncb_length&=&(ushort)& &&&&&&&&&&&&&&&&&uRetCode&=&Win32API.Netbios(ref&Ncb);& &&&&&&&&&&&&&&&&&lenum&=&(LANA_ENUM)Marshal.PtrToStructure(Ncb.ncb_buffer,&typeof(LANA_ENUM));& &&&&&&&&&&&&&&&&&Marshal.FreeHGlobal(Ncb.ncb_buffer);& &&&&&&&&&&&&&&&&&if&(uRetCode&!=&(short)NCBCONST.NRC_GOODRET)& &&&&&&&&&&&&&&&&&&&&&return&&&;& &&&&&&&&&&&&&&&&&&for&(int&i&=&0;&i&&&lenum.&i++)& &&&&&&&&&&&&&&&&&{& &&&&&&&&&&&&&&&&&&&&&Ncb.ncb_command&=&(byte)NCBCONST.NCBRESET;& &&&&&&&&&&&&&&&&&&&&&Ncb.ncb_lana_num&=&lenum.lana[i];& &&&&&&&&&&&&&&&&&&&&&uRetCode&=&Win32API.Netbios(ref&Ncb);& &&&&&&&&&&&&&&&&&&&&&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)& &&&&&&&&&&&&&&&&&&&&&uRetCode&=&Win32API.Netbios(ref&Ncb);& &&&&&&&&&&&&&&&&&&&&&adapter.adapt&=&(ADAPTER_STATUS)Marshal.PtrToStructure(Ncb.ncb_buffer,&typeof(ADAPTER_STATUS));& &&&&&&&&&&&&&&&&&&&&&Marshal.FreeHGlobal(Ncb.ncb_buffer);& &&&&&&&&&&&&&&&&&&&&&&if&(uRetCode&==&(short)NCBCONST.NRC_GOODRET)& &&&&&&&&&&&&&&&&&&&&&{& &&&&&&&&&&&&&&&&&&&&&&&&&if&(i&&&0)& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&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& &&&&&&&&&&&&&{&}& &&&&&&&&&&&&&return&addr.Replace('&',&'0');& &&&&&&&&&}& &&&&&}& &}& && &&
使用方法举例:
view&plaincopy&to&clipboardprint? &//获取硬盘序列号&&&& &Hardware.HardwareInfo&hardwareInfo&=&new&Hardware.HardwareInfo();&&&& &string&hardDiskID&=&hardwareInfo.GetHardDiskID();&&&& &System.Console.WriteLine(hardDiskID);&&&& &&& &//获取CPU序列号&&&& &string&cpuID&=&hardwareInfo.GetCpuID();&&&& &System.Console.WriteLine(cpuID);&&&& &//获取硬盘序列号Hardware.HardwareInfo&hardwareInfo&=&new&Hardware.HardwareInfo();string&hardDiskID&=&hardwareInfo.GetHardDiskID();System.Console.WriteLine(hardDiskID);//获取CPU序列号string&cpuID&=&hardwareInfo.GetCpuID();System.Console.WriteLine(cpuID);&& &
了这篇文章
类别:┆阅读(0)┆评论(0)}

我要回帖

更多关于 java 获取调用者 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信