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

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

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

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

我如何区分这两种材料?

谢谢。

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

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

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

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

试试这个:

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()); } 
 static void Main(string[] args) { ManagementObjectCollection ManObjReturn; ManagementObjectSearcher ManObjSearch; ManObjSearch = new ManagementObjectSearcher("Select * from **Win32_ParallelPort**"); ManObjReturn = ManObjSearch.Get(); foreach (ManagementObject ManObj in ManObjReturn) { //int s = ManObj.Properties.Count; //foreach (PropertyData d in ManObj.Properties) //{ // MessageBox.Show(d.Name); //} Console.WriteLine(ManObj["DeviceID"].ToString()); Console.WriteLine(ManObj["PNPDeviceID"].ToString()); Console.WriteLine(ManObj["Name"].ToString()); Console.WriteLine(ManObj["Caption"].ToString()); Console.WriteLine(ManObj["Description"].ToString()); Console.WriteLine(ManObj["ProviderType"].ToString()); Console.WriteLine(ManObj["Status"].ToString()); } } 

http://www.seeques.com/20766280/the-port-name-is-illegal-or-couldnt-be-connected-to-the-device.html

端口名称是非法的,如何是一个错误消息… fio。!

 Class1 UD = new Class1(); { string strUserAgent = Request.UserAgent.ToLower(); if (strUserAgent != null) { string Browser = Request.Browser.Browser; string a = Request.Browser.MobileDeviceManufacturer; string b = Request.Browser.MobileDeviceModel; string c = Request.Browser.Platform; string d = Request.Browser.Type; string e = Request.Browser.Version; UD.Browser = Browser; UD.MobileDeviceModel = b; UD.MobileDeviceManufacturer = a; UD.Platform2 = c; UD.Type = d; UD.Version2 = e; if (Request.Browser.IsMobileDevice == true || strUserAgent.Contains("iphone") || strUserAgent.Contains("blackberry") || strUserAgent.Contains("mobile") || strUserAgent.Contains("windows ce") || strUserAgent.Contains("opera mini") || strUserAgent.Contains("palm")) { UD.deviceType = "Request from Mobile Device"; } else { UD.deviceType = "Request from Computer"; } } }