一,通过Nuget管理器下载导入ZXing二维码生成库
二,引入Management命名空间
三,winform新建PictureBox控件
四,写入代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ZXing;
using ZXing.QrCode;
using System.Net.Sockets;
using System.Net;
using System.Management;
using System.IO;
namespace QR
{
public partial class Form1 : Form
{
public string CpuID;
public string Memory;
public string MacAddress;
public string DiskID;
public string SystemType;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
BarcodeWriter writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
QrCodeEncodingOptions options = new QrCodeEncodingOptions()
{
DisableECI = true,
CharacterSet = "UTF-8",
Width = pictureBox1.Width,
Height = pictureBox1.Height,
Margin = 1
};
string hostName = Dns.GetHostName();
IPHostEntry localhost = Dns.GetHostByName(hostName);
IPAddress localaddr = localhost.AddressList[0];
string IpAddr = localaddr.ToString();
CpuID = GetCpuID();
Memory = GetTotalPhysicalMemory();
DiskID = GetDiskID();
MacAddress = GetMacAddress();
string msg = ("IP地址:" + IpAddr + "\nCPU:" + CpuID + "\n内存:" + Memory + "B\n硬盘信息:" + DiskID + "\nMAC地址:" + MacAddress);
writer.Options = options;
ZXing.Common.BitMatrix bm = writer.Encode(msg);
Bitmap map = writer.Write(bm);
pictureBox1.Image = map;
}
string GetCpuID()
{
try
{
//获取CPU序列号代码
string cpuInfo = "";//cpu序列号
//Tuple<string, string> result = null;
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["Name"].Value.ToString();
}
moc = null;
mc = null;
return cpuInfo;
}
catch
{
return "unknow";
}
}
string GetTotalPhysicalMemory()
{
try
{
string st = "";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st = mo["TotalPhysicalMemory"].ToString();
}
moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
}
}
string GetDiskID()
{
try
{
获取硬盘ID
//string HDid = "";
//ManagementClass mc = new ManagementClass("Win32_DiskDrive");
//ManagementObjectCollection moc = mc.GetInstances();
//foreach (ManagementObject mo in moc)
//{
// HDid = (string)mo.Properties["Model"].Value;
//}
//moc = null;
//mc = null;
//return HDid;
DriveInfo[] drives = DriveInfo.GetDrives();
StringBuilder sr = new StringBuilder();
foreach (DriveInfo drive in drives)
{
if (drive.IsReady)
{
var val1 = (double)drive.TotalSize / 1024 / 1024;
var val2 = (double)drive.TotalFreeSpace / 1024 / 1024;
sr.AppendFormat("{0}:{2}/{3}MB/{4}MB/{1}%可用;\n", drive.Name, string.Format("{0:F2}", val2 / val1 * 100), drive.DriveFormat, (long)val1, (long)val2);
}
}
return sr.ToString();
}
catch
{
return "unknow";
}
}
string GetMacAddress()
{
try
{
//获取网卡硬件地址
string mac = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
{
mac = mo["MacAddress"].ToString();
break;
}
}
moc = null;
mc = null;
return mac;
}
catch
{
return "unknow";
}
}
}
}
五,执行生成
六,扫描结果