簡體   English   中英

如何通過 WMI 獲取設備 COM 端口信息?

[英]How to get Device COM port information via WMI?

我想獲取設備 COM 端口信息。

我可以使用此代碼獲取一些信息

using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity"))
{
    foreach (ManagementObject currentObject in searcher.Get())
    {
        string caption = null;

        if (currentObject != null)
        {
            object currentObjectCaption = currentObject["Caption"];

            if (currentObjectCaption != null)
            {
                caption = currentObjectCaption.ToString();

                if (currentObjectCaption.ToString().Contains("(COM"))
                {
                    string key = caption.Substring(caption.LastIndexOf("(COM")).Replace("(", string.Empty).Replace(")", string.Empty);

                    caption = key + " (" + caption.Replace($"({key})", "").Trim() + ")";

                    if (comportInfo.ContainsKey(key) == false)
                        comportInfo.Add(key, caption);
                }
            }
        }
    }

但我無法獲取設備類型和位置

在此處輸入圖像描述

如何獲取位置和設備類型信息?

如 MSDN 中所示,Win32_PnPEntity class 具有以下屬性( https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-pnpentity

你可以看到有一個制造商。 在此處輸入圖像描述

獲取設備和制造商名稱的示例示例。 我不確定位置。 您可以檢查任何其他現有屬性是否有幫助。

using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE Caption like '%USB%'"))
{
    List<ManagementObject> mObjs = searcher.Get().Cast<ManagementObject>().ToList();
    foreach (var p in mObjs)
    {
        var manufacturer = p.GetPropertyValue("Manufacturer");
        var name = p.GetPropertyValue("Name");
        var sName = p.GetPropertyValue("SystemName");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM