如何从C#程序中识别哪些COM端口连接到BlueTooth?

时间:2011-05-13 07:09:29

标签: c# bluetooth virtual-serial-port

如何从C#程序中识别哪些COM端口连接到蓝牙?

这是我的要求。我们假设计算机中的COM端口连接到各种设备。假设我们有COM端口1到9,此时连接2,3,4,5和7。现在我需要在端口2,3,4,5和7中识别哪些端口连接到BlueTooth设备?

我需要使用C#程序执行此操作。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

请参阅http://32feet.codeplex.com/wikipage?title=Getting%20Virtual%20COM%20Port%20Names简要使用WMI查看端口硬件ID中的BluetoothAddress。

C:\> Get-WmiObject -query "select DeviceID,PNPDeviceID from Win32_SerialPort"
DeviceID     : COM66 
PNPDeviceID  : BTHENUM\{00001101-0000-1000-8000-00805F9B34FB}\7&1D80ECD3&0&00803A686519_C00000003
… …

当然,我不是虚拟COM端口的粉丝,并且总是建议尽可能使用直接套接字/ API连接。 http://32feet.codeplex.com/wikipage?title=Bluetooth%20Serial%20Ports http://32feet.codeplex.com/wikipage?title=General%20Bluetooth%20Data%20Connections

答案 1 :(得分:2)

您可以查看注册表。

string commport =(string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM",     @"\Device\BthModem0", "");

如果您有多个设备,也可以有“\ Device \ BthModem1”或“\ Device \ BthModem2”等。