cs_ghofrane
Messages postés44Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention11 août 2009
-
8 mars 2007 à 19:13
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 2018
-
15 mars 2007 à 08:54
Bonjour,
je veux réaliser une application en vb.net.
dans cette application je veux afficher des résultats des fichiers écrits en vbscript.
par exemple , j'ai un fichier en vbscript qui permet de lister tous les processus:
le voilà : getprocess.vbs
strComputer = "." ' Dot (.) equals local computer in WMI'
Set wbemServices = GetObject("winmgmts:\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_Process")
For Each wbemObject In wbemObjectSet
WScript.Echo "Name: " & wbemObject.Name & vbCrLf & _
" Handle: " & wbemObject.Handle & vbCrLf & _
" Process ID: " & wbemObject.ProcessID
Next
donc je veux en cliquant sur un bouton de lancer l'exécution de ce fichier vbscript et d'afficher le résultat dans l'interface vb.
je ne sais pas quelles sont les commandes.
je suis débutante en vb et vbscript.
merci
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 14 mars 2007 à 10:36
(Concernant les applis réseau tournant... Le plus efficace, c'est
un scanneur de port. C'est un utilitaire qui te donne toutes les applis
à l'écoute sur les ports. Mais ca se serait juste pour voire un peu ce
qu'un PC Windows propose...)
Les applis client/serveurs tout ça , il y en a pas mal qui sont des services.
Tu peux taper net start dans une console, ça te donne tous les services démarrés. Certains ont des noms évocateur du réseau.
La console de configuration de Windows permet d'ouvrir le fichier
services.msc qui permet d'accèder facilement aux description des
services.
cs_ghofrane
Messages postés44Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention11 août 2009 14 mars 2007 à 20:56
salut,
voilà un nouveau pb:
le code ci dessous exécute un fichier vbs : getprocess et redirige le résultat
vers un autre fichier sortie ensuite il affiche le contenu du fichier
sortie dans une liste.
le problème est que tt ceci est contenu dans un seul bouton
et vb.net me génére une erreur :
il écrit le résultat de script dans le fichier mais ensuite il affiche qu'il ne peut
pas trouver le fichier C:\sortie.txt
et lorsque je l'exécute de nouveau il me donne le résultat dansla liste
donc on dirait que l'exécution est tellement lente de cscript
qu' il passe à l'affichage de la liste et le fichier n'est pas encore
généré.
Alors est ce que il y a une solution qui permet de retarder l'affichage
jusqu'à ce que le script termine son exécution.
System.Diagnostics.Process.Start("CMD.exe", "/C cscript /nologo c:\getprocess.vbs>c:\sortie.txt")
Dim TextLine As String
FileOpen(1, "c:\sortie.txt", OpenMode.Input) ' Open file.
While Not EOF(1) ' Loop until end of file.
TextLine = LineInput(1) ' Read line into variable.
ListBox1.Items.Add(TextLine) ' Print to the console.
End While
FileClose(1) ' Close file.
cs_ghofrane
Messages postés44Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention11 août 2009 14 mars 2007 à 21:38
rebonsoir
willi ,tu te moques .je vois très bien pas la peine d'écrire en gras.
mais n'oublie pas je suis débutante.
bon , laissons ça à un autre jour voilà une question:
est ce que je peux exécuter par exemple la commande
net start ou ping ou ipconfig ... a travers un fichier vbscript.
c'est à dire en appyant sur un bouton je lance un fichier
vbscript qui lui va lancer la commande dos voulu.
merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ghofrane
Messages postés44Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention11 août 2009 14 mars 2007 à 21:56
rebonsir,
pas la peine de répondre willi.
j'ai voulu simplement te dire merci pour ta gentillesse et ton aide.
rt15 tu me maunques déjà .
peut -etre qu'on va se rencontrer un jour mais garde ton super comportement.
merci pour toi aussi t'es un garçon génial
Au revoir .
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 15 mars 2007 à 08:41
Tu devrais utiliser la méthode de Willi pour la récupération de la
sortie de la commande, et pas un fichier texte comme je te l'ai dit. Sa
méthode est plus propre. Le souci que tu as eu est que ton appel n'est
pas bloquant : VB.NET n'attend la fin du script.
Dans cette ligne, Windows lance cmd.exe avec le reste en arguement.
CMD.exe, c'est l'environement d'execution DOS de Windows, donc
des commandes net start, ping... mais aussi cscript. cscript se
charge d'interpréter le script vbs, et le > est une redirection
comme sous unix de la sortie DOS. Donc pour executer une comande DOS,
il suffit de faire du "CMD.exe /C ping".
Mais là encore, ce serait un peu plus jolie de faire tout ça en WMI,
pour le faire en VBS, et pas récupérer des sortie textes un peu à
l'arrache.
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 15 mars 2007 à 08:54
Oui un ne m'embete pas sinon je vais le dire :)
Le 5ième commandement du réglement c'est principalement pour augmenter tes chances d'avoir une réponse à un autre problème car plus visible quand meme que des questions posées dans une 3ième pages de réponse...
++