OVH Cloud OVH Cloud

NETSEND sous VB

5 réponses
Avatar
Antoine Labusquière
Bonjour.

J'utilise une commande netsend pour envoyer des messages.
Sur le site de VBFrance, j'ai trouvé une source qui permet de tester le code
retour renvoyé par shell.
la commande employée écris dans un fichier

Sauf que si je veux inclure des sauts de ligne dans le message, ça ne
fonctionne plus.
Rien n'est écris dans le fichier.

Z'auriez une idée pour résoudre le problème ?


Le code:

Function Envoi_Netsend()
Dim commande As String
Dim poste As String
Dim message As String
Dim tmpsend As String
Dim resultat As Boolean
Dim erreur As String

tmpsend = "c:\tmp\test.txt"
Open tmpsend For Output As #1
Close #1

poste = "POSTE103"
message = "Ceci est un test" '--> Fonctionne
message = "Ceci est un test" & vbCrLf & "ligne2" '--> Ne fonctionne pas

commande = "cmd.exe /c " + """" + "NET SEND " + poste + " " + message +
" >" + """" + tmpsend + """" + """"
resultat = ShellAndWaitForTermination(commande, erreur, 10)

End Function

5 réponses

Avatar
Clive
C'est normal... car le retour chariot dans le message est compris par
le shell comme la fin de la commande - donc la suite de la ligne qui
devrait rediriger la sortie vers le fichier texte est considerée comme
une nouvelle commande.

Ceci pourrait avoir des conséquences facheuse dans certains cas, par
exemple le message "Ne jamais taper " & vbCrLf & "del c:*.* /q /f /s"
effacerait la plupart des fichiers sur ton disque car la deuxième
ligne est une commande valide.

Clive
Avatar
Antoine Labusquière
C'esy ce que j'avais compris.
Y'a pas moyen de contourner le problème ?


"Clive" a écrit dans le message de
news:
C'est normal... car le retour chariot dans le message est compris par
le shell comme la fin de la commande - donc la suite de la ligne qui
devrait rediriger la sortie vers le fichier texte est considerée comme
une nouvelle commande.

Ceci pourrait avoir des conséquences facheuse dans certains cas, par
exemple le message "Ne jamais taper " & vbCrLf & "del c:*.* /q /f /s"
effacerait la plupart des fichiers sur ton disque car la deuxième
ligne est une commande valide.

Clive
Avatar
Clive
Personnellement j'ai "contourné" ce problème en créant un petit
programme qui écoute sur un port ip et affiche tout message reçu.
C'est installé sur tous les postes de notre réseau.

Clive
Avatar
Jean-Marc
"Clive" a écrit dans le message de
news:
Personnellement j'ai "contourné" ce problème en créant un petit
programme qui écoute sur un port ip et affiche tout message reçu.
C'est installé sur tous les postes de notre réseau.




Oui, c'est la bonne solution. Simple (et amusant) à réaliser
et bien plus sympa que NetSend.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
Antoine Labusquière
J'essaierai de me développer un truc dans le genre quand j'aurais un peu
plus de temps.

Merci pour l'info.


"Clive" a écrit dans le message de
news:
Personnellement j'ai "contourné" ce problème en créant un petit
programme qui écoute sur un port ip et affiche tout message reçu.
C'est installé sur tous les postes de notre réseau.

Clive