WMI和ManagementObjectSearcher一些使用

 

以上用到如下内容的查询:

Win32_BaseBoard//主板信息
Win32_BIOS//BIOS信息
Win32_DiskDrive//物理磁盘信息
Win32_NetworkAdapterConfiguration//网卡配置信息
Win32_Processor//CPU信息
Win32_LogicalDisk//逻辑磁盘信息
Win32_Service//服务信息

 

 

 

其他可参考MSDN中的WMI介绍:

Operating System Classes

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
通过 `ManagementObjectSearcher` 类,可以使用 WMI (Windows Management Instrumentation) 查询系统信息。以下是使用 `ManagementObjectSearcher` 获取磁盘信息的示例代码: ```csharp using System.Management; // 获取磁盘信息 string driveName = System.IO.Path.GetPathRoot(System.Reflection.Assembly.GetExecutingAssembly().Location); ManagementObjectSearcher searcher = new ManagementObjectSearcher(string.Format("SELECT * FROM Win32_LogicalDisk WHERE DeviceID='{0}'", driveName)); foreach (ManagementObject queryObj in searcher.Get()) { // 获取磁盘总量 long totalSizeInBytes = (long)queryObj["Size"]; // 获取磁盘使用量 long usedSizeInBytes = (long)queryObj["Size"] - (long)queryObj["FreeSpace"]; // 获取磁盘剩余空间信息 long freeSpaceInBytes = (long)queryObj["FreeSpace"]; // 获取当前应用程序使用量 long currentAppSizeInBytes = 0; foreach (var process in System.Diagnostics.Process.GetProcesses()) { try { currentAppSizeInBytes += process.WorkingSet64; } catch (System.ComponentModel.Win32Exception) { // 忽略访问权限不足的进程 } } // 将结果输出到控制台 Console.WriteLine("Total size: {0} bytes", totalSizeInBytes); Console.WriteLine("Used size: {0} bytes", usedSizeInBytes); Console.WriteLine("Free space: {0} bytes", freeSpaceInBytes); Console.WriteLine("Current app size: {0} bytes", currentAppSizeInBytes); } ``` 需要注意的是,这种方式需要使用管理员权限运行程序。另外,由于查询 WMI 信息可能会影响系统性能,建议尽量避免频繁查询。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值