You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#获取已连接设备的名称、位置及状态等信息求助

在C#中获取已连接设备的详细信息(名称、位置、状态)

要获取Windows系统中已连接设备的名称、位置和状态,可以通过**WMI(Windows Management Instrumentation)**实现,以下是具体的代码方案:

实现步骤

1. 添加程序集引用

在你的C#项目中,添加对System.Management程序集的引用(Visual Studio中右键项目 → 添加 → 引用 → 搜索并选择System.Management)。

2. 核心代码示例

using System;
using System.Management;

class DeviceLister
{
    static void Main()
    {
        // 构造WMI查询,获取所有即插即用设备信息
        var searcher = new ManagementObjectSearcher("SELECT Name, LocationInformation, Status FROM Win32_PnPEntity");

        foreach (var device in searcher.Get())
        {
            Console.WriteLine("--- 设备详情 ---");
            // 提取设备名称
            Console.WriteLine($"设备名称: {device["Name"] ?? "未识别"}");
            // 提取设备位置信息
            Console.WriteLine($"位置: {device["LocationInformation"] ?? "无位置信息"}");
            // 提取设备状态
            Console.WriteLine($"状态: {device["Status"] ?? "未知状态"}");
            Console.WriteLine();
        }
    }
}

代码说明

  • Win32_PnPEntity是WMI提供的标准类,涵盖了系统中所有即插即用设备的基础信息
  • 用??运算符处理空值,避免部分设备缺失属性导致的异常
  • Status属性常见值:OK(正常运行)、Error(故障)、Degraded(性能降级)等
  • 如果需要仅筛选正常连接且工作的设备,可以修改查询语句为:
    SELECT Name, LocationInformation, Status FROM Win32_PnPEntity WHERE ConfigManagerErrorCode = 0
    

注意事项

  • 程序需要以管理员权限运行,否则可能无法读取部分系统设备的敏感信息
  • 不同Windows版本的WMI属性可能存在细微差异,建议在目标系统上测试验证

内容的提问来源于stack exchange,提问作者Thu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:30:58