Executer une commande cmd depuis visual basic express

Fermé
CHEESE ! - 4 mai 2014 à 12:30
 CHEESE! - 6 mai 2014 à 17:20
Bonjour,

Je possede un serveur minecraft bukkit et je veut faire un programme avec visual basic express qui me permet d' executer la commende /reload dans la console du serveur.

Merci d' avannce
A voir également:

6 réponses

MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
4 mai 2014 à 12:42
Tu as des exemples à la fin de la page.
 Dim myProcess As New Process()
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.FileName = "Ton exe, bat ou autre fichier"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()
3
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
4 mai 2014 à 22:39
'lut, tu dis "Je possede un serveur minecraft bukkit", c'est un serveur perso ou dédié? Si c'est du dédié, encore faut-il que tu puisse lancer des scripts et que ce dernier tourne sous Windows, ce qui n'est généralement pas le cas pour les serveurs.
Une fois qu'on est surs qu'on peut lancer des programmes VB.NET, alors on peut passer au technique...
Pour taper une commande dans la console du serveur, il faut que le serveur lui-même soit lancé par ton programme, pour qu'il puisse marquer "/reload" dans le flux d'entrée standard.
Et pour que ça se fasse, il faut utiliser
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.RedirectStandardInput = True
StreamWriter myStreamWriter = myProcess.StandardInput
' Autres paramètres, Lancement du processus avec myProcess.Start()...
myStreamWriter.WriteLine("/reload")

À noter qu'on ne peut pas lancer un fichier .bat quand on utilise cette méthode, donc il faut passer les paramètres nécessaires dans le code de ton programme.
1
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
4 mai 2014 à 22:43
Voici la réponse d'un pro ;-)
Je ne connais pas Minecraft donc je n'aurais pas réussi à l'aider...
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
4 mai 2014 à 22:45
Minecraft (comme plein d'autres jeux d'ailleurs) possède une interface console dans laquelle on peut taper des commandes pour influencer le jeu; ça se présente comme une invite de commande "normale" de Windows, mais les commandes sont évidemment différentes...
0
oui je le sait bien mais pour vb cpareil non ?
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
6 mai 2014 à 11:24
Non, VB n'a pas forcément une interface console; les applis GUI (Windows Forms) n'en ont pas. Mais on peut en créer une.
0
re ! g ecrit

myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.RedirectStandardInput = True
StreamWriter myStreamWriter = myProcess.StandardInput
myStreamWriter.WriteLine("/reload")

comme tu m' a dit mais il y a plusieurs erreurs : " 'myProcess' n' est pas déclaré. il peut etre inaccessible en raison de son niveau de protection. " et " 'myStreamWriter' n' est pas déclaré. il peut etre inaccessible en raison de son niveau de protection. "
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
4 mai 2014 à 12:32
0
CHEESE! Messages postés 36 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 4 mai 2014
4 mai 2014 à 12:37
Merci de ta réponse très rapide.

Je suis débutant et je ne comprends pas toutes ces lignes... ou est-ce que j' entre la commande /reload et comment sait-t-il de quel fichier il s' agit ?
0

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

Posez votre question
CHEESE! Messages postés 36 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 4 mai 2014
4 mai 2014 à 13:03
et dans

Dim myProcess As New Process()
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.FileName = "C:\Users\*****\Desktop\Serveur\Run.bat"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()

Je l' écrit ou la commande de la console ?
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
4 mai 2014 à 13:06
De quelle commande parles-tu ?
Si tu as des paramètres à passer à ton Run.bat, ce sera sur la même ligne.
Exemple : myProcess.StartInfo.FileName = "C:\Users\*****\Desktop\Serveur\Run.bat -paramètre"
Désolé, je touche un peu à VB.NET mais pas à Minecraft...
0
CHEESE! Messages postés 36 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 4 mai 2014
4 mai 2014 à 13:08
je voudrait faire l' équivalent de l' insertion d' une commande dans la console et apuyer sur entrer
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
4 mai 2014 à 13:10
C'est bien dans myProcess.StartInfo.FileName dans ce cas.
Tu écris ce que tu tapes dans une invite de commandes ;-)
0
CHEESE! Messages postés 36 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 4 mai 2014
4 mai 2014 à 13:11
mais dans myProcess.StartInfo.FileName ce n' est pas le chemin du fichier .bat qu'il faut mettre ?
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
Modifié par MrYAU31 le 4/05/2014 à 13:13
C'est ce que dit Microsoft mas en fait, il sagit de ce que tu écris dans ta ligne cmd ;-)
0
CHEESE! Messages postés 36 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 4 mai 2014
4 mai 2014 à 14:37
mais de maniere générale pour les commendes on écrit quoi ou ?
-1