C# 获取CPU序列号、网卡MAC地址、硬盘序列号封装类,用于软件绑定电脑

 1 using System.Management;
 2 
 3 namespace GLaLa
 4 {
 5     /// <summary>
 6     /// hardware_mac 的摘要说明。
 7     /// </summary>
 8     class HardwareInfo
 9     {
10         /// <summary>
11         /// 取机器名
12         /// </summary>
13         /// <returns></returns>
14         public string GethostName()
15         {
16             return System.Net.Dns.GetHostName();
17         }
18 
19         /// <summary>
20         /// 获取cpu序列号
21         /// </summary>
22         /// <returns></returns>
23         public static string GetCPUSerialNumber()
24         {
25             string cpuSerialNumber = string.Empty;
26             ManagementClass mc = new ManagementClass("Win32_Processor");
27             ManagementObjectCollection moc = mc.GetInstances();
28             foreach (ManagementObject mo in moc)
29             {
30                 cpuSerialNumber = mo["ProcessorId"].ToString();
31                 break;
32             }
33             mc.Dispose();
34             moc.Dispose();
35             return cpuSerialNumber;
36         }
37 
38         /// <summary>
39         /// 获取硬盘序列号
40         /// </summary>
41         /// <returns></returns>
42         public static string GetDiskSerialNumber()
43         {
44             ManagementObjectSearcher mos = new ManagementObjectSearcher();
45             mos.Query = new SelectQuery("Win32_DiskDrive", "", new string[] { "PNPDeviceID", "Signature" });
46             ManagementObjectCollection myCollection = mos.Get();
47             ManagementObjectCollection.ManagementObjectEnumerator em = myCollection.GetEnumerator();
48             em.MoveNext();
49             ManagementBaseObject moo = em.Current;
50             string id = moo.Properties["signature"].Value.ToString().Trim();
51             return id;
52         }
53 
54         /// <summary>
55         /// 获取网卡硬件地址
56         /// </summary>
57         /// <returns></returns>
58         public static string GetMoAddress()
59         {
60             string MoAddress = " ";
61             using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
62             {
63                 ManagementObjectCollection moc2 = mc.GetInstances();
64                 foreach (ManagementObject mo in moc2)
65                 {
66                     //if ((bool)mo["IPEnabled"] == true)
67                     MoAddress = mo["MacAddress"].ToString();
68                     mo.Dispose();
69                 }
70             }
71             return MoAddress.ToString();
72         }
73     }
74 }


调用示例
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
    if (File.Exists (Application.StartupPath + @"\WOWComputerInfo.ini") )
    {
        DecryptoMethod decry = new DecryptoMethod();
        string computerInfo = "";
        using (StreamReader streamReader = new StreamReader (Application.StartupPath +

 @"\WOWComputerInfo.ini", System.Text.Encoding.Default) )
        {
            try
            {
                computerInfo = decry.Decrypto (streamReader.ReadToEnd() );
            }
            catch
            {
            }
        }
        string getComputerInfo = HardwareInfo.GetCPUSerialNumber() + HardwareInfo.GetDiskSerialNumber() + HardwareInfo.GetMoAddress();
        if (computerInfo != getComputerInfo)
        {
            MessageBox.Show ("程序不能在本机使用!""提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }
    }
    else
    {
        MessageBox.Show ("配置文件丢失或未配置,程序不能运行!""提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
        return;
    }
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault (false);
    Application.Run (new frmMain() );
}

 

 

============================================================
C#获取系统版本、内存大小、显卡类型、cpu型号

 

 C# Code 
 
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Runtime.InteropServices;
private static CPU_INFO CpuInfo;
private static MEMORY_INFO MemoryInfo;
/// <summary>
/// 静态构造函数
/// </summary>
static ServerInfo()
{
    CpuInfo = new CPU_INFO();
    GetSystemInfo (ref CpuInfo);
    MemoryInfo = new MEMORY_INFO();
    GlobalMemoryStatus (ref MemoryInfo);
}
#region 服务器相关硬件信息
#region 定义API引用
/// <summary>
/// CPU信息
/// </summary>
/// <param name="cpuinfo">CPU_INFO</param>

public static extern void GetSystemInfo (ref CPU_INFO cpuinfo);

/// <summary>
/// 内存信息
/// </summary>
/// <param name="meminfo"></param>

public static extern void GlobalMemoryStatus (ref MEMORY_INFO meminfo);
#endregion
#region CPU相关
/// <summary>
/// 获取CPU数量
/// </summary>
public static string Count
{
    get { return CpuInfo.NumberOfProcessors.ToString(); }
}
/// <summary>
/// 获取CPU类型
/// </summary>
public static string Type
{
    get { return CpuInfo.ProcessorType.ToString(); }
}
/// <summary>
/// 获取CPU等级
/// </summary>
public static string Level
{
    get { return CpuInfo.ProcessorLevel.ToString(); }
}
/// <summary>
/// 获取CPUOemID
/// </summary>
public static string OemID
{
    get { return CpuInfo.OemID.ToString(); }
}
/// <summary>
/// CPU页面大小
/// </summary>
public static string PageSize
{
    get { return CpuInfo.PageSize.ToString(); }
}
#endregion
#region 内存相关
/// <summary>
/// 物理内存总大小
/// </summary>
public static string TotalPhys
{
    get { return MemoryInfo.TotalPhys.ToString(); }
}
/// <summary>
/// 可用物理内存
/// </summary>
public static string AvailPhys
{
    get { return MemoryInfo.AvailPhys.ToString(); }
}
/// <summary>
/// 交换页面总大小
/// </summary>
public static string TotalPageFile
{
    get { return MemoryInfo.TotalPageFile.ToString(); }
}
/// <summary>
/// 可交换页面大小
/// </summary>
public static string AvailPageFile
{
    get { return MemoryInfo.AvailPageFile.ToString(); }
}
/// <summary>
/// 虚拟内存总大小
/// </summary>
public static string TotalVirtual
{
    get { return MemoryInfo.TotalVirtual.ToString(); }
}
/// <summary>
/// 可用虚拟内存
/// </summary>
public static string AvailVirtual
{
    get { return MemoryInfo.AvailVirtual.ToString(); }
}
/// <summary>
/// 已经内存
/// </summary>
public static string Load
{
    get { return MemoryInfo.MemoryLoad.ToString(); }
}
#endregion
#endregion
/// <summary>
/// 定义CPU的信息结构
/// </summary>

public struct CPU_INFO
{
    public uint OemID;
    public uint PageSize;
    public uint MinimumApplicationAddress;
    public uint MaximumApplicationAddress;
    public uint ActiveProcessorMask;
    public uint NumberOfProcessors;
    public uint ProcessorType;
    public uint AllocationGranularity;
    public uint ProcessorLevel;
    public uint ProcessorRevision;
}
/// <summary>
/// 定义内存的信息结构
/// </summary>

public struct MEMORY_INFO
{
    public uint Length;
    public uint MemoryLoad;
    public uint

转载于:https://www.cnblogs.com/qq260250932/p/5464585.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用 .NET 语言(C#)编写的获取计算机硬件信息的: ```csharp using System; using System.Management; public class HardwareInfo { public string GetCpuId() { string cpuId = ""; ManagementClass mc = new ManagementClass("win32_processor"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { cpuId = mo.Properties["processorID"].Value.ToString(); break; } return cpuId; } public string GetMotherboardId() { string motherboardId = ""; ManagementClass mc = new ManagementClass("Win32_BaseBoard"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { motherboardId = mo.Properties["SerialNumber"].Value.ToString(); break; } return motherboardId; } public string GetHardDiskId() { string hardDiskId = ""; ManagementClass mc = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { hardDiskId = (string)mo["SerialNumber"]; break; } return hardDiskId; } public string GetMACAddress() { string macAddress = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"] == true) { macAddress = mo["MacAddress"].ToString(); break; } } return macAddress; } } ``` 使用方法: ```csharp HardwareInfo hwInfo = new HardwareInfo(); string cpuId = hwInfo.GetCpuId(); string motherboardId = hwInfo.GetMotherboardId(); string hardDiskId = hwInfo.GetHardDiskId(); string macAddress = hwInfo.GetMACAddress(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值