Bonjour à tous

Faisant suite à l'exposé d'un premier problème lié au développement d'un programme de pilotage d'une carte relais (code qui fonctionne une fois puis plus rien) : https://www.developpez.net/forums/d2...uis-plus-rien/ , J'en suis à traiter en parallèle des solutions alternatives.

L'objectif étant de pouvoir commuter des relais (carte à 16 relais) via un interface que j'ai développé en VB.Net, et vu que mon code actuel pose soucis, j'ai trouvé l'action palliative qui fait appel à l’exécution de scripts VBS externe au programme. J'arrive actuellement à réaliser la commutation de n'importe quel relais en déclenchant le script VBS en lui transférant le numéro du relais à commuter.

A contrario, en interrogeant la carte, il est possible d'avoir l'état de commutation des 16 relais. Il suffit d'envoyer une commande html http://192.168.1.4/30000/99 pour récupérer une chaine de caractère contenant l'état des relais.
Mon script VBS qui se nomme "Etat_relais.vbs" et qui se trouve actuellement à la racine du disque E est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Dim aXMLHTTP, aURL
aURL = "http://192.168.1.4/30000/99"
set aXMLHTTP = CreateObject("MSXML2.XMLHTTP")
Call aXMLHTTP.Open("GET", aURL, False)
Call aXMLHTTP.send()
Call MsgBox(mid(aXMLHTTP.responseText, 21,16)) ' Extraction d'une chaine de 16 caractères à partir du 21ème pour n'avoir que l'état des relais.
set aXMLHTTP = Nothing
Pour le moment, je visualise le résultat (une chaine de 16 caractères 0 ou 1 qui traduisent l'état réel des relais) dans un MsgBox pour vérifier le bon fonctionnement du script.

Dans mon programme VB.Net, j'exécute les lignes suivantes pour lancer le script VBS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Dim Etat_Rel
Dim p As New System.Diagnostics.Process()
p.StartInfo.FileName = "E:\Etat_relais.vbs"
p.Start()
Ma question est comment récupérer cette variable dans mon code VB.Net afin de la traiter ? J'ai passé beaucoup de temps à chercher (peut-être mal) et j'ai trouvé certaines solutions entre de l'exe, du bat, ... Mais entre VBS et VB.Net, rien !

Merci pour votre aide

Jean-Pierre