您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在开发应用程序时,有时我们需要获取计算机的软件和硬件信息,以便进行系统监控、性能分析或故障排查。C# 提供了多种方式来获取这些信息。本文将详细介绍如何使用 C# 获取计算机的软件和硬件信息。
Environment
类Environment
类提供了许多静态属性和方法来获取操作系统的基本信息。
using System;
class Program
{
static void Main()
{
Console.WriteLine("操作系统版本: " + Environment.OSVersion);
Console.WriteLine("64位操作系统: " + Environment.Is64BitOperatingSystem);
Console.WriteLine("计算机名称: " + Environment.MachineName);
Console.WriteLine("用户名称: " + Environment.UserName);
Console.WriteLine("系统目录: " + Environment.SystemDirectory);
Console.WriteLine("当前目录: " + Environment.CurrentDirectory);
}
}
System.Management
命名空间System.Management
命名空间提供了更详细的系统信息。
using System;
using System.Management;
class Program
{
static void Main()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
foreach (ManagementObject obj in searcher.Get())
{
Console.WriteLine("操作系统名称: " + obj["Caption"]);
Console.WriteLine("版本: " + obj["Version"]);
Console.WriteLine("制造商: " + obj["Manufacturer"]);
Console.WriteLine("安装日期: " + obj["InstallDate"]);
}
}
}
using System;
using System.Management;
class Program
{
static void Main()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
foreach (ManagementObject obj in searcher.Get())
{
Console.WriteLine("CPU 名称: " + obj["Name"]);
Console.WriteLine("CPU 核心数: " + obj["NumberOfCores"]);
Console.WriteLine("CPU 线程数: " + obj["NumberOfLogicalProcessors"]);
Console.WriteLine("CPU 最大时钟频率: " + obj["MaxClockSpeed"]);
}
}
}
using System;
using System.Management;
class Program
{
static void Main()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory");
foreach (ManagementObject obj in searcher.Get())
{
Console.WriteLine("内存容量: " + obj["Capacity"]);
Console.WriteLine("内存速度: " + obj["Speed"]);
Console.WriteLine("内存制造商: " + obj["Manufacturer"]);
}
}
}
using System;
using System.Management;
class Program
{
static void Main()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject obj in searcher.Get())
{
Console.WriteLine("磁盘名称: " + obj["Model"]);
Console.WriteLine("磁盘大小: " + obj["Size"]);
Console.WriteLine("磁盘接口类型: " + obj["InterfaceType"]);
}
}
}
using System;
using System.Management;
class Program
{
static void Main()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_VideoController");
foreach (ManagementObject obj in searcher.Get())
{
Console.WriteLine("显卡名称: " + obj["Name"]);
Console.WriteLine("显卡内存: " + obj["AdapterRAM"]);
Console.WriteLine("显卡驱动版本: " + obj["DriverVersion"]);
}
}
}
using System;
using System.Management;
class Program
{
static void Main()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
foreach (ManagementObject obj in searcher.Get())
{
Console.WriteLine("网络适配器名称: " + obj["Description"]);
Console.WriteLine("IP 地址: " + string.Join(", ", (string[])obj["IPAddress"]));
Console.WriteLine("MAC 地址: " + obj["MACAddress"]);
}
}
}
using System;
using System.Net.NetworkInformation;
class Program
{
static void Main()
{
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface ni in interfaces)
{
Console.WriteLine("网络接口名称: " + ni.Name);
Console.WriteLine("网络接口类型: " + ni.NetworkInterfaceType);
Console.WriteLine("网络接口状态: " + ni.OperationalStatus);
}
}
}
ManagementObjectSearcher
获取已安装软件using System;
using System.Management;
class Program
{
static void Main()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach (ManagementObject obj in searcher.Get())
{
Console.WriteLine("软件名称: " + obj["Name"]);
Console.WriteLine("版本: " + obj["Version"]);
Console.WriteLine("安装日期: " + obj["InstallDate"]);
}
}
}
using System;
using Microsoft.Win32;
class Program
{
static void Main()
{
string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(registryKey))
{
foreach (string subKeyName in key.GetSubKeyNames())
{
using (RegistryKey subKey = key.OpenSubKey(subKeyName))
{
Console.WriteLine("软件名称: " + subKey.GetValue("DisplayName"));
Console.WriteLine("版本: " + subKey.GetValue("DisplayVersion"));
Console.WriteLine("发布者: " + subKey.GetValue("Publisher"));
}
}
}
}
}
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
PerformanceCounter cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
Console.WriteLine("CPU 使用率: " + cpuCounter.NextValue() + "%");
}
}
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes");
Console.WriteLine("可用内存: " + ramCounter.NextValue() + "MB");
}
}
通过使用 C# 的 Environment
类、System.Management
命名空间、PerformanceCounter
类以及注册表,我们可以轻松获取计算机的软件和硬件信息。这些信息对于系统监控、性能分析和故障排查非常有用。希望本文能帮助你更好地理解如何使用 C# 获取计算机的软件和硬件信息。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。