C#获取设备信息
程序员文章站
2022-06-12 17:13:09
...
参考文档:https://msdn.microsoft.com/en-us
1、获取设备信息
/// <summary>
/// 获取系统信息的公共方法
/// </summary>
/// <param name="objquery">查询语句</param>
/// <param name="infoname">系统信息字段</param>
/// <returns></returns>
public static string getSystemInfoObject(ObjectQuery objquery, string infoname)
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher(objquery);
var systeminfo = "";
foreach (ManagementObject mo in searcher.Get())
{
systeminfo = mo[infoname].ToString();
}
return systeminfo;
}
catch
{
return "";
}
}
// PC***
public static string getPCNumber()
{
ObjectQuery objquery = new ObjectQuery("Select * From Win32_BIOS");
string infoname = "SerialNumber";
return getSystemInfoObject(objquery, infoname);
}
// 计算机名
public static string getPCName()
{
return Environment.MachineName;
}
// 磁盘***
public static string getDiskNumber()
{
ObjectQuery objquery = new ObjectQuery("Select * From Win32_DiskDrive");//Win32_PhysicalMedia
string infoname = "SerialNumber"; //SerialNumber
return getSystemInfoObject(objquery, infoname);
}
//磁盘驱动器
public static string getDisks()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
var disks = "";
foreach (ManagementObject mo in searcher.Get())
{
disks += mo["Caption"].ToString() + ";";
}
return disks;
}
// 操作系统
public static string getPCSystem()
{
ObjectQuery objquery = new ObjectQuery("select * from Win32_OperatingSystem");
string infoname = "Name";
return getSystemInfoObject(objquery, infoname);
}
// 操作系统位数
public static string getPCBit()
{
ObjectQuery objquery = new ObjectQuery("select * from Win32_OperatingSystem");
string infoname = "OSArchitecture";
return getSystemInfoObject(objquery, infoname);
}
// 操作系统语言
public static string getPCLanguage()
{
return CultureInfo.InstalledUICulture.NativeName;
}
//PC模块
public static string getPCType()
{
ObjectQuery objquery = new ObjectQuery("select * from Win32_ComputerSystem");
string infoname = "Model";
return getSystemInfoObject(objquery, infoname);
}
// CPU
public static string getPCCPU()
{
ObjectQuery objquery = new ObjectQuery("select * from Win32_Processor");
string infoname = "Name";
return getSystemInfoObject(objquery, infoname);
}
// 内存
public static string getPCMemory()
{
ObjectQuery objquery = new ObjectQuery("select * from Win32_ComputerSystem");
string infoname = "TotalPhysicalMemory";
return getSystemInfoObject(objquery, infoname);
}
//硬盘
public static string getPCDisk()
{
long lsum = 0;
foreach (DriveInfo drive in DriveInfo.GetDrives())
{
//判断是否是固定磁盘
if (drive.DriveType == DriveType.Fixed)
{
lsum += drive.TotalSize;
}
}
var disk = lsum / (1024 * 1024 * 1024);
if (disk > 300)
{
return "SSD " + disk.ToString();
}
else
{
return "HDD " + disk.ToString();
}
}
string biosnumber = Device.getPCNumber();//获取PC***
string name = Device.getPCName();//获取计算机名
string pcsystem = Device.getPCSystem();
string bit = Device.getPCBit();
string language = Device.getPCLanguage();
string systembitlanguage = pcsystem.Split('|')[0] + " " + bit + " " + language.Split('(')[0];//获取操作系统+位数+语言
string type = Device.getPCType();//PC模块类型
string cpu = Device.getPCCPU();//获取CPU
string pcmemory = Device.getPCMemory();
var memory = float.Parse(pcmemory) / 1024 / 1024 / 1024 + "G";//获取内存
string disk = Device.getPCDisk() + "GB";//获取磁盘
var systeminfo = biosnumber + "\n" + name + "\n" + type + "\n" + systembitlanguage + "\n";
systeminfo += cpu + "\n" + memory + "\n" + disk + "\n";
MessageBox.Show(systeminfo);
执行结果:
调用ManagementObjectSearcher实例中的Get()方法,在ManagementObject中的对象中获取我们想要的数据,在https://msdn.microsoft.com/en-us搜索(如Win32_Processor)即可查看到对应的属性名
// 硬件
Win32_Processor, // CPU 处理器
Win32_PhysicalMemory, // 物理内存条
Win32_Keyboard, // 键盘
Win32_PointingDevice, // 点输入设备,包括鼠标。
Win32_FloppyDrive, // 软盘驱动器
Win32_DiskDrive, // 硬盘驱动器
Win32_CDROMDrive, // 光盘驱动器
Win32_BaseBoard, // 主板
Win32_BIOS, // BIOS 芯片
Win32_ParallelPort, // 并口
Win32_SerialPort, // 串口
Win32_SerialPortConfiguration, // 串口配置
Win32_SoundDevice, // 多媒体设置,一般指声卡。
Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)
Win32_USBController, // USB 控制器
Win32_NetworkAdapter, // 网络适配器
Win32_NetworkAdapterConfiguration, // 网络适配器设置
Win32_Printer, // 打印机
Win32_PrinterConfiguration, // 打印机设置
Win32_PrintJob, // 打印机任务
Win32_TCPIPPrinterPort, // 打印机端口
Win32_POTSModem, // MODEM
Win32_POTSModemToSerialPort, // MODEM 端口
Win32_DesktopMonitor, // 显示器
Win32_DisplayConfiguration, // 显卡
Win32_DisplayControllerConfiguration, // 显卡设置
Win32_VideoController, // 显卡细节。
Win32_VideoSettings, // 显卡支持的显示模式。
// 操作系统
Win32_TimeZone, // 时区
Win32_SystemDriver, // 驱动程序
Win32_DiskPartition, // 磁盘分区
Win32_LogicalDisk, // 逻辑磁盘
Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。
Win32_LogicalMemoryConfiguration, // 逻辑内存配置
Win32_PageFile, // 系统页文件信息
Win32_PageFileSetting, // 页文件设置
Win32_BootConfiguration, // 系统启动配置
Win32_ComputerSystem, // 计算机信息简要
Win32_OperatingSystem, // 操作系统信息
Win32_StartupCommand, // 系统自动启动程序
Win32_Service, // 系统安装的服务
Win32_Group, // 系统管理组
Win32_GroupUser, // 系统组帐号
Win32_UserAccount, // 用户帐号
Win32_Process, // 系统进程
Win32_Thread, // 系统线程
Win32_Share, // 共享
Win32_NetworkClient, // 已安装的网络客户端
Win32_NetworkProtocol, // 已安装的网络协议
上一篇: [C#]C#连接MySQL方法
下一篇: 机器学习的回归评价指标