OVH Cloud OVH Cloud

Liste du matériel présent sur un PC

5 réponses
Avatar
Rey
Bonjour à tous,
Qql connait-il un moyen de récupérer la liste du matériel, ports COM,
LPT...etc d'un PC ?
Le but dans mon cas étant de faire en sorte que mon appli cherche la
présence d'un modem afin de savoir si elle peut émettre via ce modem.
Merci de votre aide.
Rey.

5 réponses

Avatar
Anor
Bonjour,

Rey wrote:
| Bonjour à tous,
| Qql connait-il un moyen de récupérer la liste du matériel, ports COM,
| LPT...etc d'un PC ?
| Le but dans mon cas étant de faire en sorte que mon appli cherche la
| présence d'un modem afin de savoir si elle peut émettre via ce modem.
| Merci de votre aide.
| Rey.


Tu peux essayer d'utiliser l'API CreateFile pour vérifier la présence d'un modem sur les ports
série.
Par exemple, une petite fonction vite fait, mais comme je n'ai pas de modem installé, je ne sais
pas
si elle fonctionne réellement.......

Ensuite, si tu veux connaître le nom du modem, il faudra utiliser l'API WriteFile pour envoyer
des
commandes AT et récupérer la réponse modem.


Option Compare Database
Option Explicit

Dim OpenPort As Long

Declare Function CreateFile& Lib "kernel32" _
Alias "CreateFileA" _
(ByVal lpFileName$, _
ByVal dwDesiredAccess&, _
ByVal dwShareMode&, _
ByVal lpSecurityAttributes&, _
ByVal dwCreationDisposition&, _
ByVal dwFlagsAndAttributes&, _
ByVal hTemplateFile&)

Function NoPortModem() As String
Dim CommPort As Integer
NoPortModem = "Aucun Modem Détecté"
For CommPort = 1 To 4
OpenPort = CreateFile(CommPort, &HC0000000, 0, 0, 3, 0, 0)
If OpenPort <> -1 Then: NoPortModem = "COM" & CommPort
Next CommPort
End Function

Sub test()
msgbox NoPortModem
End Sub


--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
Anor
Anor wrote:
| For CommPort = 1 To 4
| OpenPort = CreateFile(CommPort, &HC0000000, 0, 0, 3, 0, 0)


oups j'ai été un peu vite, écrire plutôt

OpenPort = CreateFile("COM" & CommPort, &HC0000000, 0, 0, 3, 0, 0)


--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
Rey
Merci de ta réponse, je vais faire un essai.
Bonne journée.

"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de
news:
Anor wrote:
| For CommPort = 1 To 4
| OpenPort = CreateFile(CommPort, &HC0000000, 0, 0, 3, 0, 0)


oups j'ai été un peu vite, écrire plutôt

OpenPort = CreateFile("COM" & CommPort, &HC0000000, 0, 0, 3, 0, 0)


--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------




Avatar
Rey
Re Arnaud,
J'ai essayé ce que tu m'as conseillé, et ça fonctionne impec.
ca me permet de savoir combien et quels ports COM sont accessible sur mon
pc.
En revanche l'envoi de commande AT au modem afin de savoir s'il est bien
présent sur le com en cours de test fonctionne mais impossible de récupérer
la réponse.
Je m'explique, j'envoi ma commande AT avec writefile, et tout à l'air d'être
ok, en revanche j'essai de récupérer la réponse avec un readfile tout de
suite après, et là pas de réponse, la fonction read me renvoi le sablier et
tourne sur elle-même ?! Elle semble attendre le nombre de caractère.
J'ai pourtant veillé à définir un nombre d'octets inferieur à celui renvoyé
réellement par mon modem.
Comment fait-on pour utiliser cette fonction readfile quand on doit lire une
chaine de longueur inconnue ?
Merci de ta présieuse aide.
Rey.


"Rey" a écrit dans le message de news:
c6045a$8hp$
Merci de ta réponse, je vais faire un essai.
Bonne journée.

"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message
de

news:
Anor wrote:
| For CommPort = 1 To 4
| OpenPort = CreateFile(CommPort, &HC0000000, 0, 0, 3, 0, 0)


oups j'ai été un peu vite, écrire plutôt

OpenPort = CreateFile("COM" & CommPort, &HC0000000, 0, 0, 3, 0, 0)


--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------








Avatar
Anor
Bonjour,
Je ne m'étais pas étalé sur le sujet faute de modem pour tester
et faute d'avoir beaucoup de code sous la main.

celui que j'ai utilisé est celui-ci :
http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&selmª6kh8%24ps5%242%40wanadoo.fr&rnum

il y en a sûremennt plein d'autres à dégoter sur le web

A+
--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------

Rey wrote:
| Re Arnaud,
| J'ai essayé ce que tu m'as conseillé, et ça fonctionne impec.
| ca me permet de savoir combien et quels ports COM sont accessible sur
| mon pc.
| En revanche l'envoi de commande AT au modem afin de savoir s'il est
| bien présent sur le com en cours de test fonctionne mais impossible
| de récupérer la réponse.
| Je m'explique, j'envoi ma commande AT avec writefile, et tout à l'air
| d'être ok, en revanche j'essai de récupérer la réponse avec un
| readfile tout de suite après, et là pas de réponse, la fonction read
| me renvoi le sablier et tourne sur elle-même ?! Elle semble attendre
| le nombre de caractère.
| J'ai pourtant veillé à définir un nombre d'octets inferieur à celui
| renvoyé réellement par mon modem.
| Comment fait-on pour utiliser cette fonction readfile quand on doit
| lire une chaine de longueur inconnue ?
| Merci de ta présieuse aide.
| Rey.