C# com0com虚拟端口未由UWP打开

C# com0com虚拟端口未由UWP打开,c#,uwp,com0com,C#,Uwp,Com0com,informations.Any()为假 我的错误在哪里?我还没有在UWP上尝试过,但在访问10或更大的COM端口时有一个错误:您需要从用户模式指定完整的符号设备名称。即,在a\\.前面加上前缀: var selector = SerialDevice.GetDeviceSelector(@"\\.\COM14"); Microsoft SerialCommunication docs站点描述当前不支持系统内部端口: 我不明白为什么不能,他们将来可能会添加此功能 解决办法是: C# 使用标准

informations.Any()为假


我的错误在哪里?

我还没有在UWP上尝试过,但在访问10或更大的COM端口时有一个错误:您需要从用户模式指定完整的符号设备名称。即,在a
\\.
前面加上前缀:

var selector = SerialDevice.GetDeviceSelector(@"\\.\COM14");

Microsoft SerialCommunication docs站点描述当前不支持系统内部端口:

我不明白为什么不能,他们将来可能会添加此功能

解决办法是:

C# 使用标准的.NET System.IO.Ports.SerialPort类(GetPortNames()除外)在.NET for UWP 6.1.5中一切都可以运行。作为GetPortNames的替代,您可以对GetCommPorts进行P/Interop

C++/winrt 使用新的Windows10RS3/4API调用OpenCommPort。有关函数原型,请参见Windows头文件,因为此函数目前未记录在MS文档中

注意:还要确保在.appxmanifest文件中,应用程序“声明”对串行端口的访问:

<DeviceCapability Name="serialcommunication">
  <Device Id="any">
    <Function Type="name:serialPort" />
  </Device>
</DeviceCapability>

谢谢您的回答。但是现在,如果我写“COM14”信息,Any()是真的。但是等待SerialDevice.FromIdAsync(informations.First().Id)==NULL。
<DeviceCapability Name="serialcommunication">
  <Device Id="any">
    <Function Type="name:serialPort" />
  </Device>
</DeviceCapability>