2016-10-27 31 views
2

有沒有辦法通過DeviceInformation獲取設備的COM端口號?當我通過設備管理器查看它們時,我可以看到COM端口號。來自Windows.Devices.Enumeration.DeviceInformation的COM端口號

我剛碰到一些沒有列出COM端口號的設備作爲Name屬性的一部分。我插入其中兩個,並且無法區分它們彼此。理想情況下,我希望看到一個COM端口。有沒有不同的方式來獲取這些信息?

string _serialSelector = SerialDevice.GetDeviceSelector(); 
DeviceInformationCollection tempInfo = await DeviceInformation.FindAllAsync(_serialSelector); 
    if (tempInfo.Count > 0) 
    { 
     foreach (var efefe in tempInfo) 
     { 
      if (efefe.Kind.Equals(DeviceInformationKind.DeviceInterface)) 
      { 
       //efefe.Name      
      } 
     } 
    } 

回答

1

你做的大部分工作,那麼你將需要使用你的efefe的ID來獲得使用SerialDevice.FromIdAsync | fromIdAsync methodSerialDevice對象。

以下是演示:

string _serialSelector = SerialDevice.GetDeviceSelector(); 
var infos = await DeviceInformation.FindAllAsync(_serialSelector); 
foreach (var info in infos) 
{ 
    var serialDevice = await SerialDevice.FromIdAsync(info.Id); 
    if (serialDevice != null) 
    { 
     var port = serialDevice.PortName; 
     Debug.WriteLine(port.ToString()); 
    } 
} 

請不要忘了在清單中添加DeviceCapability

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