Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2663 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  fonction exec et affichage problème apparition fenetre dos

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction exec et affichage problème apparition fenetre dos

n°2006224
tinelenva
Posté le 01-07-2010 à 09:46:13  profilanswer
 

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

mood
Publicité
Posté le 01-07-2010 à 09:46:13  profilanswer
 

n°2006499
SuppotDeSa​Tante
Aka dje69r
Posté le 02-07-2010 à 09:18:34  profilanswer
 

Pas compris où est le souci...???
 
Le problème est qu'on voit la fenetre dos ?


---------------
Soyez malin, louez entre voisins !
n°2006516
tinelenva
Posté le 02-07-2010 à 09:50:14  profilanswer
 

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

n°2006553
SuppotDeSa​Tante
Aka dje69r
Posté le 02-07-2010 à 11:06:05  profilanswer
 

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 :
  1. Set shl = CreateObject("wscript.shell" )
  2. strTxt = "cmd /K MD C:\TOTO"
  3. shl.Run strTxt, 0


Message édité par SuppotDeSaTante le 02-07-2010 à 11:06:38

---------------
Soyez malin, louez entre voisins !
n°2006623
tinelenva
Posté le 02-07-2010 à 13:35:23  profilanswer
 

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

n°2006628
tinelenva
Posté le 02-07-2010 à 13:48:14  profilanswer
 

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

n°2006640
SuppotDeSa​Tante
Aka dje69r
Posté le 02-07-2010 à 14:12:59  profilanswer
 

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 :
  1. Set shl = CreateObject("wscript.shell" )
  2.     strTxt = "cmd /K Set >C:\toto.txt"
  3.     shl.Run strTxt, 0
  4.     Open "C:\toto.txt" For Input Access Read As 1
  5.     Do While Not EOF(1)
  6.         Line Input #1, Texte
  7.         Texte2 = Texte2 & Chr(13) & Chr(10) & Texte
  8.     Loop
  9.     Close #1
  10.     MsgBox Texte2
  11.    
  12. 'Soit un kill pour du vba
  13.     Kill "C:\toto.txt"
  14. 'Soit ca
  15.     Set objFSO = CreateObject("Scripting.FileSystemObject" )
  16.     objFSO.deletefile "C:\toto.txt", True
  17.     Set objFSO = Nothing


Message édité par SuppotDeSaTante le 02-07-2010 à 14:15:05

---------------
Soyez malin, louez entre voisins !
n°2006654
tinelenva
Posté le 02-07-2010 à 14:29:38  profilanswer
 

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...

n°2006662
SuppotDeSa​Tante
Aka dje69r
Posté le 02-07-2010 à 15:01:11  profilanswer
 

Apres ca depend de ce que tu veux recuperer, mais avec du vbs, il y a des api pour a peu pres tout  :whistle:


---------------
Soyez malin, louez entre voisins !
n°2006666
tinelenva
Posté le 02-07-2010 à 15:11:31  profilanswer
 

si c'est bien ça que je veux recuperer mais je voulais faire autrement mais c'est pas grave. Merci beaucoup en tout cas!

mood
Publicité
Posté le 02-07-2010 à 15:11:31  profilanswer
 

n°2006670
SuppotDeSa​Tante
Aka dje69r
Posté le 02-07-2010 à 15:20:36  profilanswer
 

Tu veux récupérer le Set de l'invite de commande en vbs ?


---------------
Soyez malin, louez entre voisins !
n°2006671
tinelenva
Posté le 02-07-2010 à 15:22:36  profilanswer
 

ah non pas le set mais dans l'esprit c'est ça je remplace juste set par le nom de ma commande

n°2006675
SuppotDeSa​Tante
Aka dje69r
Posté le 02-07-2010 à 15:43:30  profilanswer
 

Non mais osef l'esprit...
Concretement tu veux quoi ?


---------------
Soyez malin, louez entre voisins !
n°2006686
tinelenva
Posté le 02-07-2010 à 16:08:53  profilanswer
 

ben je sais pas quoi te dire c'est bon j'ai ce que je veux donc cool.

n°2006699
SuppotDeSa​Tante
Aka dje69r
Posté le 02-07-2010 à 17:16:49  profilanswer
 

ah ok
:jap:


---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  fonction exec et affichage problème apparition fenetre dos

 

Sujets relatifs
j'ai un problème avec la fonction limit sous mtsqlLister les fichiers d'un répertoire : problème de portabilité?
JTable , probleme affichageProblème pour modifier la valeur d'une ligne dans un fichier
Problème script avec joomlaMauvais affichage menu SPRY sous IE
Selectionner une donnée en fonction d'une autre 
Plus de sujets relatifs à : fonction exec et affichage problème apparition fenetre dos


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR