首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在.NET中找到具有驱动程序名称的串口设备?

如何在.NET中找到具有驱动程序名称的串口设备?
EN

Stack Overflow用户
提问于 2018-06-11 20:30:39
回答 1查看 2K关注 0票数 3

我有一个通过串口连接到计算机的设备。我知道在.NET中打开端口,我可以通过COM号调用端口。例如

代码语言:javascript
运行
复制
SerialPort s = new SerialPort("COM9");
s.Open();

在COM9上调用该设备。但是,如果我在另一个计算机端口号上运行我的程序和串口设备,那么设备的名称在每台计算机上都是相同的。例如,在这张图片中,我想与"Numato Lab 8 Channel USB中继模块“通信,而不考虑COM端口号(名称总是与端口号相同)。

的问题是:不管怎么说,我用设备管理器中所示的名称而不是端口号来称呼我的设备,而不是上面的代码吗?喜欢

代码语言:javascript
运行
复制
SerialPort s = new SerialPort("Numato Lab 8 Channel USB Relay Module");
EN

回答 1

Stack Overflow用户

发布于 2018-06-11 20:45:15

你必须访问WMI才能得到这些信息。为了便于访问,您可以使用ORMi库:

只需创建一个类:

代码语言:javascript
运行
复制
[WMIClass("Win32_PnPEntity")]
public class Device
{
    public string Caption { get; set;}
}

然后查询:

代码语言:javascript
运行
复制
WMIHelper helper = new WMIHelper("root\\CimV2");

Device device = helper.Query<Device>().ToList().Where(p => p.Caption == "Numato Lab 8 Channel USB Relay Module").SingleOrDefault();

如果希望获得更多信息,则向Device类添加更多属性。属性应该与Win32_PnPEntity类的WMI规范相匹配。

一旦您获得了设备,您可能还必须查询Win32_SerialPort类,以了解您的设备连接的端口。我把这个留给你调查。

在这里,如果你想自己做所有的工作,你会得到一个很大的解释:

https://codereview.stackexchange.com/questions/111178/find-a-serial-port-device-through-wmi-windows-management-instrumentation

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50805563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档