2010-07-09 247 views
0

我正在开发用于Windows Mobile 6.1的小型演示应用程序,以获取所有串行端口及其上配置的蓝牙设备的列表。我正面临一些奇怪的问题。SerialPort.GetPortNames()不返回正确的结果

  1. 当我进入Settings-> Connections-> Bluetooth-> COM POrts时,可以看到总共10个COM端口。但是,当我使用SerialPort.GetPortNames()来获取所有端口时,它显示了9个端口,即少一个端口。最后一个端口即COM09不返回结果集中。

  2. 然后,我删除了其中一个COM端口(COM08)上配置的配对设备之一,并且SerialPort.GetPortNames()返回了没有COM08端口的结果集。

  3. 我进一步试图知道哪些COM端口仍未使用。当我试图在“未使用”(根据我的程序)端口之一手动创建“新出站端口”时,它会提示“COM端口无法创建”!

有人能告诉我理由并指导我进一步解决问题吗?

+0

我已经通过这个链接。 http://stackoverflow.com/questions/2754857/c-serialport-getportnames-behavior 伟大的,如果我了解更多的细节和解决方案。 – Amey 2010-07-09 09:29:18

回答

0

Bluetootch驱动程序可能正在修改驱动程序和GetPortNames可能正在查看该注册表项的注册表项。

使用删除注册表编辑器查看HKLM \ Drivers \ BuiltIn和HKLM \ Drivers \ Active,看看发生了什么。您可能会编写自己的解析器,查看这些值以获取您的内容。