Виртуальный порт com0com не открывается UWP
2 ответа
Я не пробовал это на UWP, но при доступе к COM-портам от 10 и выше возникает странная особенность Windows: вам нужно указать полное символическое имя устройства из пользовательского режима. То есть, предварять \\.\
:
var selector = SerialDevice.GetDeviceSelector(@"\\.\COM14");
На сайте документации Microsoft SerialCommuncation описывается, что внутренние порты системы в настоящее время не поддерживаются: https://docs.microsoft.com/en-us/uwp/api/windows.devices.serialcommunication
Я не понимаю, почему нет, и они могут добавить эту функцию в будущем.
Обходной путь:
C# Используйте стандартный класс.NET System.IO.Ports.SerialPort (кроме GetPortNames()), все работает в.NET для UWP 6.1.5. В качестве замены для GetPortNames вы можете использовать P/Interop для GetCommPorts.
C++ / winrt Используйте новый вызов API Windows 10 RS3/4 OpenCommPort. См. Заголовочные файлы Windows для прототипа функции, так как эта функция в настоящее время не документирована в документах MS.
Обратите внимание, также убедитесь, что в вашем файле.appxmanifest ваше приложение "запрашивает" доступ к последовательному порту:
<DeviceCapability Name="serialcommunication">
<Device Id="any">
<Function Type="name:serialPort" />
</Device>
</DeviceCapability>