2016-10-27 4 views
2

DeviceInformation을 통해 장치의 COM 포트 번호를 가져 오는 방법이 있습니까? 장치 관리자를 통해 COM 포트 번호를 볼 수 있습니다.Windows.Devices.Enumeration.DeviceInformation의 COM 포트 번호

방금 ​​Name 속성의 일부로 COM 포트 번호를 나열하지 않는 몇 개의 장치가 연결되었습니다. 나는 그 중 두 개를 연결 했으므로 서로 구별 할 수있는 방법이 없습니다. 이상적으로는 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

, 당신은 SerialDevice.FromIdAsync | fromIdAsync method를 사용하여 SerialDevice 개체를 얻을 수 있도록 efefe의이 ID를 사용해야합니다.

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> 
다음

데모입니다