fonction exec et affichage problème apparition fenetre dos - VB/VBA/VBS - Programmation
Marsh Posté le 02-07-2010 à 09:18:34
Pas compris où est le souci...???
Le problème est qu'on voit la fenetre dos ?
Marsh Posté le 02-07-2010 à 09:50:14
oui elle apparait et disparait très vite. Je recupère bien les informations de la commandes dfsutil mais je ne veux pas que l'apparition furtive de la fenetre dos
Marsh Posté le 02-07-2010 à 11:06:05
Pourquoi tu ne passes pas par Run ? Je comprends pas l'histoire du fichier temporaire...
Exemple pour créer le dossier TOTO sous C:\
La fenetre DOS n'apparait pas grace au ",0"
Code :
|
Marsh Posté le 02-07-2010 à 13:35:23
Je ne passe pas par Run parce que j'ai l'impression que cela ne me permet pas de récupérer le résultat de ma commande. Dans ton cas ça marche avec l'exemple de ta commande parce qu'elle n'affiche rien dans DOS.
Imaginons que je veuille faire un simple "set" alors dans le dos s'affichent toutes les infos du compte, ce sont ces lignes d'info que je veux recuperer pour les afficher dans une fenetre html. De ce que j'ai vu sur les différents sites, pour passer par le run il faut faire une boucle qui lit chaque ligne, la copie dans un fichier texte, et à la fin on balaye le fichier texte et on l'affiche. Mais cela sous-entend la création d'un fichier ce que je veux éviter. Donc pour cela j'ai trouvé la fonction exec qui me permet bien d'afficher directement les lignes de DOS mais qui a l'inconvénient de faire apparaitre (meme si très brievement) la fenetre DOS.
J'espère que c'est plus clair.... dsl sinon
Marsh Posté le 02-07-2010 à 13:48:14
C'est un peu le même problème que lui:
http://groupes.codes-sources.com/a [...] 10373.aspx
S'il est plus clair je sais pas
Marsh Posté le 02-07-2010 à 14:12:59
Non vraiment je pige pas le souci... Dsl...
On sait que pour mettre ce que la fenetre Dos affiche dans un fichier il suffit de faire ">chemin du fichier"
Donc meme un set, "Set >C:\toto.txt" te met bien ton set dans un fichier texte, derriere tu le lis, tu recuperes le contenu et tu detruis le fichier...
Code :
|
Marsh Posté le 02-07-2010 à 14:29:38
oui je suis d'ac c'est une solution qui marche. C'est ça que j'appelle fichier temporaire lol ouvrir un fichier ecrire dedans le lire puis l'effacer. Je voulais eviter parce que j'ai vu qu'on pouvait faire sans avec exec mais bon je crois que je vais revenir à cette solution...
Marsh Posté le 02-07-2010 à 15:01:11
Apres ca depend de ce que tu veux recuperer, mais avec du vbs, il y a des api pour a peu pres tout
Marsh Posté le 02-07-2010 à 15:11:31
si c'est bien ça que je veux recuperer mais je voulais faire autrement mais c'est pas grave. Merci beaucoup en tout cas!
Marsh Posté le 02-07-2010 à 15:20:36
Tu veux récupérer le Set de l'invite de commande en vbs ?
Marsh Posté le 02-07-2010 à 15:22:36
ah non pas le set mais dans l'esprit c'est ça je remplace juste set par le nom de ma commande
Marsh Posté le 02-07-2010 à 15:43:30
Non mais osef l'esprit...
Concretement tu veux quoi ?
Marsh Posté le 02-07-2010 à 16:08:53
ben je sais pas quoi te dire c'est bon j'ai ce que je veux donc cool.
Marsh Posté le 01-07-2010 à 09:46:13
Bonjour,
Je cherche à afficher le résultat d'une commande dos (ex DfsUtil /pktinfo) dans une fenetre. J'ai choisi pour cela la fonction exec() mais à l'execution la fenetre Dos s'ouvre puis se referme très rapidement ce que je ne voudrais pas voir apparaitre. ex du code:
set shl = createobject("wscript.shell" )
Set objExecObject = shl.exec(commande)
Do While Not objExecObject.StdOut.AtEndOfStream
strText = objExecObject.StdOut.ReadLine()
Loop
puis j'affiche strText dans une autre fenetre.
Je sais que je peux utiliser la commande Run mais je ne veux pas créer de fichier temporaire et je ne vois pas d'autre solution pour Run. Des idées? Merci