2009-03-31 8 views
2

Sur win32, en utilisant winapi, est-il de toute façon de savoir quels comports (à partir de com0 vers le haut) existent réellement en tant que périphériques?Quels ports de communication existent? Win32

Pour le moment, je tente juste de les ouvrir tous (0 à 9), mais je n'arrive pas à comprendre la différence d'échec entre un qui n'existe pas et un qui n'est pas simplement disponible parce que quelqu'un d'autre utilise il. Les deux situations semblent renvoyer la même dernière erreur, donc je me demandais si je pourrais énumérer tous les comports disponibles sur le système.

+0

Notez qu'il y a peut-être plus de 10 ports COM. Mes appareils Bluetooth obtiennent régulièrement des ports au-dessus du COM20, par exemple. – Joey

Répondre

1

Je crois que vous pouvez appeler QueryDosDevice() et passer null pour le premier paramètre, puis analyser les résultats.

1

Rechercher google pour "énumérer les ports COM". This est un exemple de lien.

0

Le nom est regrettable, mais "SetupAPI" est la partie pertinente de l'API Windows. Appelez SetupDiCreateDeviceInfoList une fois pour la classe d'interface de périphérique GUID_DEVINTERFACE_COMPORT. Puis appelez SetupDiEnumDeviceInfo à plusieurs reprises, en commençant à l'index 0 jusqu'à GetLastError()==ERROR_NO_MORE_ITEMS.

Questions connexes