Vbscript + vb.net

Résolu
cs_ghofrane Messages postés 44 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 11 août 2009 - 8 mars 2007 à 19:13
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 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

27 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
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.
0
cs_ghofrane Messages postés 44 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 11 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.




merci et à bientôt.
 
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
14 mars 2007 à 21:16
ghofrane, petite précision
On ne pose qu'une question par topic

++
0
cs_ghofrane Messages postés 44 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 11 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ghofrane Messages postés 44 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 11 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 .
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
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.


"CMD.exe", "/C cscript /nologo c:\getprocess.vbs>c:\sortie.txt"


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.


Un lien sur WMI :

http://msdn2.microsoft.com/en-us/library/ms950396.aspx


Un autre sur le VBS :

http://msdn2.microsoft.com/en-us/library/t0aew7h6.aspx


Et surtout embète pas Willi. C'est un monsieur patron sur ce site. Et là tu as transgressé le 5ème commandement.
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
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...
++
0
Rejoignez-nous