ims214
Messages postés6Date d'inscriptionmardi 26 octobre 2010StatutMembreDernière intervention 2 février 2012
-
4 janv. 2012 à 12:04
ims214
Messages postés6Date d'inscriptionmardi 26 octobre 2010StatutMembreDernière intervention 2 février 2012
-
5 janv. 2012 à 10:03
Bonjour,
j'hérite d'un programme qui peut être utilisé en passant par une fenêtre DOS. j'aurais aimé le commander à partir d'une fenêtre Win32. Pour cela je m'inspire de la solution présentée ici:
Lancer plusieurs commandes sur le même processus Après quelques problèmes de compilation liées visiblement aux types des paramètres utilisés dans la fonction WriteFile, je commence à faire fonctionner ce code. Cependant cette fonction WriteFile ne semble écrire que le premier caractère de la commande
lorsque l'instruction suivante est accomplie:
if (! WriteFile(hPipeInputWrite, lpCommand, _tcslen(lpCommand) , &nNumberOfCharsWritten, NULL))
System_ShowLastError();
je constate (en DEBUG) que nNumberOfCharsWritten correspond exactement au nombre de caratères de lpCommand, mais la réponse de la fenêtre DOS montre à l'évidence que seul le premier caractère a été pris en compte.
Il faut d'ailleurs pour cela que je répète cette instruction en envoyant cette fois le caratère _T("\n")
En résumé suposons que je doive envoyer la lpCommand "show\n", ça ne marchera pas.
Il faut que j'envoie "s" ensuite "h" ensuite "o" ensuite "w" ensuite "\n"
Alors seulement la fenêtre DOS me renvoie la réponse attendue.
ims214
Messages postés6Date d'inscriptionmardi 26 octobre 2010StatutMembreDernière intervention 2 février 2012 5 janv. 2012 à 10:03
Merci Renfield,
Dans VS2008, j'ai repris le code original et configuré l'item "Jeu de caractères" des propriétés générales du projet en "Non défini"
...Et ça marche!