Récupérer la liste des ports série valables sur un PC

mimi09jn Messages postés 49 Date d'inscription mardi 21 février 2012 Statut Membre Dernière intervention 12 juillet 2013 - 24 avril 2013 à 18:41
 acive - 27 août 2013 à 11:28
bonjour à tous,

Je travaille avec Excel2007 et VBA, je veux récupérer la liste des ports COM valables sur ma machine.
Quelqu’un pourrait me proposer une fonction VBA qui permet de le faire?
Merci d'avance

6 réponses

Utilisateur anonyme
24 avril 2013 à 18:58
Salut Mimi09,

Je vois que ton MsComm fonctionne bien...

En VBA je crois qu'il faut faire un test de connexion sur chacun et gérer l'erreur s'il n'est pas valable.
(A confirmer)


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 avril 2013 à 19:57
Bonjour,
ou encore utiliser la fonction EnumPorts de l'Api de Windows.
Mais là ... on s'écarte assez considérablement des seules connaissances en VBA.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
mimi09jn Messages postés 49 Date d'inscription mardi 21 février 2012 Statut Membre Dernière intervention 12 juillet 2013
25 avril 2013 à 10:24
Oui je savais que je devais utiliser l'API EnumPorts, mais je ne suis pas tombée sur une fonction qui me permet de récupérer les POrts COM avec cette API, mais là non plus
J'ai trouvé un bout de code trop sympa qui m'a permis de le faire agréablement
Si jamais quelqu'un en aura besoin un jour, le voilà:
http://www.andreavb.com/tip040003.html
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 avril 2013 à 10:28
Ah ?
Cette fonction de l'Api de Windows te permets de recenser la totalité des ports présents. Ceux qui t'intéressent sont ceux dont le nom commence par "COM".
Où est le problème, donc ?
Quel code as-tu tenté ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mimi09jn Messages postés 49 Date d'inscription mardi 21 février 2012 Statut Membre Dernière intervention 12 juillet 2013
25 avril 2013 à 11:07
Oui je sais
ça me dérange pas, je peux à partir de la liste fournie choisir un port COM tout simplement
Mon problème était comment exploiter EnumPorts (elle avait évidemment besoin d'un bout de code pour marcher )
J'ai tenté le code que j'ai fourni dans le lien ucfoutu
0
chris37000 Messages postés 42 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 12 décembre 2017
Modifié par chris37000 le 26/08/2013 à 09:41
Bonjour,

Peut on adapter cette méthode à VB.net 2010 afin de récupérer le nom complet des ports COM.

Car je récupère facilement le nom des ports COM disponible, COM1 COM2 etc.. Avec la fonction GetPortName déjà disponible. Mais je voudrais le nom associé à chaque COM car j'ai pas mal de boitier USB/COM qui s'échange de PC à PC du coup on ne sais jamais sur quel COM travailler. Nous sommes obligés d'aller dans le gestionnaire de périf pour les vérifier ce qui est casse pied. Si je pouvais ajouter le nom complet directement dans l'apli se serait plus facile.

Merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
Modifié par cs_Jack le 26/08/2013 à 12:52
Pourquoi parles-tu maintenant de VB.Net (2010) alors que tu cherchais du VBA ... ?
Qu'appelles-tu un "nom complet" ?
Donne un exemple, car pour moi, les ports COM s'appellent COM1, COM2 ... je ne vois pas trop ce que tu veux dire.

Eventuellement, essaye de faire une recherche dans la base de registres (*) : HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM

(*) avec les droits admin
0
Bonjour,
En VB.NET (même si nous ne sommes pas dans la bonne section):

  Dim Ports As String() = System.IO.Ports.SerialPort.GetPortNames()
        For Each NomPort As String In ports
            MessageBox.Show(NomPort)
        Next NomPort


Cordialement
0
Rejoignez-nous