C#获取自己电脑相关设备信息
项目中需要添加System.Management引用
1. 在'解决方案资源管理器' 窗口中->右击项目-> '添加' -> '引用' 弹出引用管理器
2. 在引用处理器中,程序集-> 框架 -> 选中 'System.Management' -> 确认
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using System.Management;
using System.IO;namespace AliWorkbenchProgram
{/// <summary>/// Computer Information/// </summary>class ClassComputerOp{public string CpuID;public string MacAddress;public string DiskID;public string IpAddress;public string LoginUserName;public string ComputerName;public string SystemType;public string TotalPhysicalMemory; //单位:Mprivate static ClassComputerOp _instance;public static ClassComputerOp Instance(){if (_instance == null)_instance = new ClassComputerOp();return _instance;}protected ClassComputerOp(){CpuID = GetCpuID();MacAddress = GetMacAddress();DiskID = GetDiskID();IpAddress = GetIPAddress();LoginUserName = GetUserName();SystemType = GetSystemType();TotalPhysicalMemory = GetTotalPhysicalMemory();ComputerName = GetComputerName();}string GetCpuID(){try{//获取CPU序列号代码string cpuInfo = "";//cpu序列号ManagementClass mc = new ManagementClass("Win32_Processor");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){cpuInfo = mo.Properties["ProcessorId"].Value.ToString();}moc = null;mc = null;return cpuInfo;}catch{return "unknow";}finally{}}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";}finally{}}string GetIPAddress(){try{//获取IP地址string st = "";ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){if ((bool)mo["IPEnabled"] == true){//st=mo["IpAddress"].ToString();System.Array ar;ar = (System.Array)(mo.Properties["IpAddress"].Value);st = ar.GetValue(0).ToString();break;}}moc = null;mc = null;return st;}catch{return "unknow";}finally{}}string GetDiskID(){try{//获取硬盘IDString 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;}catch{return "unknow";}finally{}}/// <summary>/// 操作系统的登录用户名/// </summary>/// <returns></returns>string GetUserName(){try{string st = "";ManagementClass mc = new ManagementClass("Win32_ComputerSystem");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){st = mo["UserName"].ToString();}moc = null;mc = null;return st;}catch{return "unknow";}finally{}}/// <summary>/// PC类型/// </summary>/// <returns></returns>string GetSystemType(){try{string st = "";ManagementClass mc = new ManagementClass("Win32_ComputerSystem");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){st = mo["SystemType"].ToString();}moc = null;mc = null;return st;}catch{return "unknow";}finally{}}/// <summary>/// 物理内存/// </summary>/// <returns></returns>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";}finally{}}/// <summary>/// /// </summary>/// <returns></returns>string GetComputerName(){try{return System.Environment.GetEnvironmentVariable("ComputerName");}catch{return "unknow";}finally{}}//// 取得设备硬盘的卷标号 此方法为取硬盘逻辑分区序列号,重新格式化会改变public static string GetDiskVolumeSerialNumber(){ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");disk.Get();return disk.GetPropertyValue("VolumeSerialNumber").ToString();}// 取得设备硬盘的物理序列号 public static string GetDiskSerialNumber(){ManagementObjectSearcher mos = new ManagementObjectSearcher();mos.Query = new SelectQuery("Win32_DiskDrive", "", new string[] { "PNPDeviceID", "Signature" });ManagementObjectCollection myCollection = mos.Get();ManagementObjectCollection.ManagementObjectEnumerator em = myCollection.GetEnumerator();em.MoveNext();ManagementBaseObject moo = em.Current;string id = moo.Properties["signature"].Value.ToString().Trim();return id;}public List<string> GetRemovableDeviceID(){List<string> deviceIDs = new List<string>();ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * From Win32_LogicalDisk ");ManagementObjectCollection queryCollection = query.Get();foreach (ManagementObject mo in queryCollection){switch (int.Parse(mo["DriveType"].ToString())){case (int)DriveType.Removable: //可以移动磁盘 {//MessageBox.Show("可以移动磁盘"); deviceIDs.Add(mo["DeviceID"].ToString());break;}case (int)DriveType.Fixed: //本地磁盘 {//MessageBox.Show("本地磁盘"); deviceIDs.Add(mo["DeviceID"].ToString());break;}case (int)DriveType.CDRom: //CD rom drives {//MessageBox.Show("CD rom drives "); break;}case (int)DriveType.Network: //网络驱动 {//MessageBox.Show("网络驱动器 "); break;}case (int)DriveType.Ram:{//MessageBox.Show("驱动器是一个 RAM 磁盘 "); break;}case (int)DriveType.NoRootDirectory:{//MessageBox.Show("驱动器没有根目录 "); break;}default: //defalut to folder {//MessageBox.Show("驱动器类型未知 "); break;}}}return deviceIDs;}//获取当前计算机逻辑磁盘名称列表String[] drives = Environment.GetLogicalDrives();//Console.WriteLine("GetLogicalDrives: {0}", String.Join(", ", drives));}
}
C#获取自己电脑相关设备信息相关推荐
- 基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection
基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection 获取P ...
- C#使用ManagementObjectSearcher获取本计算机CPU,硬盘,内存条等相关设备信息
C#获取本操作系统显卡,CPU,硬盘等相关信息,使用ManagementObjectSearcher对象来进行查询. 添加 引用 程序集 框架 System.Management 一.新建窗体应用程序 ...
- 获取用户ip和设备信息
1.获取用户ip javascript获取访问者IP及所在地 2.获取用户的设备信息 javascript获取访问者设备信息 3.判断用户是点击链接进来的还是直接输入网站进来的,直接输入的referr ...
- [Python]指定搜索关键字,通过网页获取bilibili的相关视频信息
首先我们导入两个包 from bs4 import BeautifulSoup import requests 如果你没有第一行的包,那么在PyCharm编译器中的话,只要将鼠标移到那上面去就会弹出个 ...
- Flutter获取Android/iOS设备信息
我们在进行各个系统的原生开发时,都有对应的方法获取设备信息,那么在使用Flutter时如何获取设备相关的相关信息呢? 我们本文就来介绍一个Flutter插件: Flutter Device Info ...
- Android Build类获取设备信息
前言 因为项目中经常会遇到要上传一系列设备信息的功能,为了方便使用,所以就拆分成以下系列文章来单独介绍如何获取各类设备信息 手机运营商获取 AndroidID.IMEI.OAID获取 地理位置信息经纬 ...
- QAudioRecorder 获取音视频的设备,麦克风实时检测问题
在获取音视频设备中遇到了一个麦克风实时检测问题(热插拔) 起初获取是通过 audioInputs() 重新调用这个函数时没有重新检测到新的结果这里因为之前避免掉使用计时器所以就没用,每次通过调用aud ...
- arcgis 圈选获取图层下点位_ARCGIS获取图层下的要素信息及要素类转换为要素
/// /// 得到需要的字段名和字段值 /// /// private void GetField(ILayer layer) { int index = 0; int i = 0; //要素类转换 ...
- Linux系统下自动搜索USB摄像头地址及设备信息
Linux系统下自动搜索USB摄像头地址及设备信息 在进行到多个USB摄像头开发时,会涉及到获取摄像头地址及设备信息问题. 一般USB摄像头的设备信息是固定的,我们基于设备信息,就可以在软件开发时进行 ...
最新文章
- Dcoker(系列) docker-redis警告处理
- 第十五章 shell正则表达式
- 电阻(4)之上/下拉电阻
- 不知道Mysql排序的特性,加班到12点,认了认了!
- sql运算符_SQL运算符
- 计算机上可以插键盘吗,电脑键盘上这些按键竟然可以这样用?
- tensorRT程序设计框架_4
- C语言一个简单的贪吃蛇程序
- html怎么把图片左移_html元素向左移代码 html
- C# worksheet设置Excel样式
- android 网络运营商名称显示规则(锁屏界面,下拉列表)
- system和vendor分区挂载解析(Android O)
- [玩转UE4/UE5动画系统>Control Rig篇] 之 Control Rig + Fullbody IK版的足部IK实现(附项目代码)
- G16、G24、G32、G36、G60
- 主机调优20141226
- 华为手表gt2e升级鸿蒙,华为Watch GT 2e全新升级,长达两周的续航可有点秀?
- 组合----隔板法分堆分配
- Python串口通讯发送指令读写NFC源码 支持windows、linux系统
- 哈夫曼树基础知识总结
- 回忆向——诺宝RC机器人仿真