获取连接到串行端口的设备名称

Arn*_* F. 16 c# serial-port

我搜索如何获取连接到串行端口的材料的设备名称.

我有两种不同类型的材料可以连接在上面.

第一个:打印机(仅接收数据并且不发送任何内容)第二个:余额(仅发送数据并且不接收任何内容)

我如何区分这两种材料?

谢谢.

小智 13

试试这个:

        ManagementObjectCollection ManObjReturn;
        ManagementObjectSearcher ManObjSearch;
        ManObjSearch = new ManagementObjectSearcher("Select * from Win32_SerialPort");
        ManObjReturn = ManObjSearch.Get();

        foreach (ManagementObject ManObj in ManObjReturn)
        {
            //int s = ManObj.Properties.Count;
            //foreach (PropertyData d in ManObj.Properties)
            //{
            //    MessageBox.Show(d.Name);
            //}
            MessageBox.Show(ManObj["DeviceID"].ToString());
            MessageBox.Show(ManObj["PNPDeviceID"].ToString());
               MessageBox.Show(ManObj["Name"].ToString());
               MessageBox.Show(ManObj["Caption"].ToString());
               MessageBox.Show(ManObj["Description"].ToString());
               MessageBox.Show(ManObj["ProviderType"].ToString());
               MessageBox.Show(ManObj["Status"].ToString());

        }
Run Code Online (Sandbox Code Playgroud)


Chr*_*lor 11

没有一种识别串行端口(UART RS232)设备的通用方法.

除非设备具有可以发送到设备的特殊命令,并且使用识别信息进行响应,否则您无能为力.

通常,依赖串行端口的应用程序将具有标准设置屏幕,用户可以使用该屏幕来配置设备所连接的串行端口,波特率,奇偶校验位,停止位和数据位等端口配置.如果可以在同一端口上打开多个设备,则操作员将负责在与设备通信之前为目标设备选择正确的配置.

这是USB等新技术的优势,其中设备识别内置于标准中.