首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UWP未打开com0com虚拟端口

UWP未打开com0com虚拟端口
EN

Stack Overflow用户
提问于 2017-01-23 13:40:48
回答 2查看 760关注 0票数 1

代码语言:javascript
复制
var selector = SerialDevice.GetDeviceSelector("COM14");
var informations = await DeviceInformation.FindAllAsync(selector);

if (informations.Any())
{
    var port = await SerialDevice.FromIdAsync(informations.First().Id);
}

informations.Any()为false

我的错误在哪里?

EN

回答 2

Stack Overflow用户

发布于 2017-01-23 22:14:30

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

代码语言:javascript
复制
var selector = SerialDevice.GetDeviceSelector(@"\\.\COM14");
票数 1
EN

Stack Overflow用户

发布于 2018-06-26 18:05:25

Microsoft SerialCommuncation文档站点描述了当前不支持系统内部端口:Microsoft Docs about windows.devices.serialcommunication

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

一种解决方法是:

C#使用标准的.NET System.IO.Ports.SerialPort类(除了GetPortNames()),所有东西都可以在UWP 6.1.5的.NET中运行。作为GetPortNames的替代品,你可以使用GetCommPorts。

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

另请注意,请确保您的应用程序在.appxmanifest文件中“声明”了对串行端口的访问权限:

代码语言:javascript
复制
<DeviceCapability Name="serialcommunication">
  <Device Id="any">
    <Function Type="name:serialPort" />
  </Device>
</DeviceCapability>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41799889

复制
相关文章

相似问题

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