[英]Is there any way to get information about the device corresponding to a com port?
[英]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.