SerialPort.GetPortNames()没有返回正确的结果

时间:2010-07-09 09:27:44

标签: compact-framework

我正在为Windows Mobile 6.1开发小型演示应用程序,以获取所有串行端口和配置在其上的蓝牙设备的列表。我面临一些奇怪的问题。

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

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

  3. 我进一步试图知道哪些COM端口仍未使用。当我试图在其中一个'未使用'(根据我的程序)端口上手动创建“新传出端口”时,它会显示一条消息“无法创建COM端口”!

  4. 有人可以告诉我原因并指导我进一步解决问题吗?

1 个答案:

答案 0 :(得分:0)

Bluetootch驱动程序可能正在修改驱动程序所在的注册表项,而GetPortNames可能正在查看该密钥。

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