• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#如何取硬件标志

C#如何取硬件标志

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#获取硬件信息,c#硬件,c#获取电脑硬件信息,c#硬件环境,c#硬件开发等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
using System;
using System.Runtime.InteropServices;
using  System.Management;
namespace Hardware
{
/// <summary>
/// Hardware_Mac 的摘要说明。
/// </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();
     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 searcher.Get()) 
    {    
     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(LayoutKind.Sequential)] 
   public struct ADAPTER_STATUS 
  { 
   [MarshalAs(UnmanagedType.ByValArray, 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(LayoutKind.Sequential)] 
   public struct NAME_BUFFER 
  {  
   [MarshalAs(UnmanagedType.ByValArray, SizeConst=(int)NCBCONST.NCBNAMSZ)] 
   public byte[] name; 
   public byte name_num;  
   public byte name_flags;  
  } 

  [StructLayout(LayoutKind.Sequential)] 
   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(UnmanagedType.ByValArray,&nbs
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#如何取硬件标志

相关文章

  • 2017-05-28C#中数组、ArrayList和List三者的区别详解
  • 2017-05-28WPF中引入WindowsForms控件的方法
  • 2017-05-28C#中调用SAPI实现语音合成的2种方法
  • 2017-05-28C#实现.net页面之间传值传参方法汇总
  • 2017-05-28C#匿名方法与Delegate类型转换错误分析
  • 2017-05-28c#的treeview绑定和获取值的方法
  • 2017-05-28js substr,substring与java substring和C# substring的区别解析
  • 2017-05-28C#开发教程之ftp操作方法整理
  • 2017-05-28ref 和out传参的区别分析
  • 2017-05-28C#图像处理之图像平移的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#虚函数用法实例分析
    • C#动态加载dll扩展系统功能的方法
    • Treeview动态添加用户控件传值和取值的实例代码
    • C#怎样才能将XML文件导入SQL Server
    • 描述C#多线程中lock关键字的使用分析
    • C#实现在Form里面内嵌dos窗体的方法
    • c# 对windows用户和组操作实例
    • C#中面向对象编程机制之多态学习笔记
    • C#中参数个数可变的方法实例分析
    • C#简单实现防止多个程序运行的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有