Problème avec Shutdown

himurafred Messages postés 6 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 14 décembre 2005 - 13 déc. 2005 à 22:10
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 14 déc. 2005 à 17:40
Bonjour,

Voila j'ai un problème en utilisant :
cmd = "Shutdown -s -m \" + tabip(i - 1) + " -t 0"
Shell (cmd)

Mon programme servira à éteindre des pc sur un réseau, or le programme fonctionne lorsque je l'utilise sous vb6 en test mais ensuite lorsque je me sert du .exe que je génère à la fin le programme s'ouvre une seconde fois au lieu d'ouvrir la page ms-dos associé à la commande shutdown.

Merci pour les renseignements.

11 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
14 déc. 2005 à 10:38
salut$
qu'est ce qu'il fait d'autre ton programme ?

est ce que tu as gestion d'erreur dedans ?

je pense que ton probleme vient d'ailleur dans le programme, car la je vois vraiment pas ce qui peut provoquer un changement de comportement entre un lancement dans L'IDE et un lancement a partir d'un exe...
0
himurafred Messages postés 6 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 14 décembre 2005
14 déc. 2005 à 11:57
salut

mon programme servira à éteindre tous les pc situé sur un réseau. la plage d'ip est enregistré dans le tableau tabip, qui est ensuite parcouru pour réaliser le shutdown sur tous les ip. Donc j'ai un bouton sur lequel j'appuie pour lancer l'arrêt des machines et dans ce bouton il n'y a que la boucle for et la commande shutdown. Dans l'interface de vb j'ai bien la fenêtre dos mais une fois compilé je ne l'ai plus et j'ai le programme qui s'ouvre une seconde fois à la place. Je me mets tout juste au vb donc j'ai pensé que c'était un problème d'options de compilation comme pour du c++ mais ça n'a pas l'air.

Merci
0
bigondas Messages postés 31 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 5 septembre 2006
14 déc. 2005 à 12:04
c'est quoi comme type cmd ?
dim cmd as ....
0
himurafred Messages postés 6 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 14 décembre 2005
14 déc. 2005 à 13:24
la variable est un string

Dim cmd As String
0

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

Posez votre question
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
14 déc. 2005 à 14:23
essaie de nous mettre un peu plus de code, ce qui est avant et apres ton shell... on pourra peut etre mieux comprendre.
0
himurafred Messages postés 6 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 14 décembre 2005
14 déc. 2005 à 14:53
Voici le code autour du shell :

Private Sub shutdown_Click()
Dim cmd As String
Dim i As Integer
For i = 1 To nbposte Step 1
cmd = "Shutdown -s -m \" + tabip(i - 1) + " -t 0"
Shell (cmd)
Next
End Sub
0
bigondas Messages postés 31 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 5 septembre 2006
14 déc. 2005 à 15:17
ça représente quoi tabip et nbposte ?
0
bigondas Messages postés 31 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 5 septembre 2006
14 déc. 2005 à 15:27
tu as défini le nbposte dans un sub général ?


comment fait tu pour faire apparaitre la ligne de commande dans ton projet VB ?
0
himurafred Messages postés 6 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 14 décembre 2005
14 déc. 2005 à 15:29
nbposte correspont au nombre de pc sur le réseau et tabip est le tableau ou sont enregistrés les adresses ip des pc
0
himurafred Messages postés 6 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 14 décembre 2005
14 déc. 2005 à 16:12
je vous donne le compte complet pour vous aider à comprendre, le code comporte surement des imperfections car c'est l'un de mes premiers projets en vb, je suis plus orienté c++ d'habitude.

'8 Adresses IP pré-enregistrées


Dim tabip() As Variant
Dim nbposte, indice As Integer
Dim valide As Boolean


Private Sub Form_Load()
indice = 0
valide = False
nbposte = 8
tabip = Array("172.16.101.1", "172.16.101.2", "172.16.101.3", "172.16.101.4", "172.16.101.5", "172.16.101.6", "172.16.101.7", "172.16.101.8")
For Each ip_enregistré In tabip
Listip.AddItem (ip_enregistré)
Next
End Sub


Private Sub shutdown_Click()
Dim cmd As String
Dim i As Integer
For i = 1 To nbposte Step 1
cmd = "Shutdown -s -m \" + tabip(i - 1) + " -t 0"
Shell (cmd)
Next
End Sub


Private Sub Validebuttonip_Click()
nbposte = nbposte1.Text
If (nbposte = "") Then
MsgBox ("Vous avez oublié de donner le nombre de poste")
Else
If (nouveau_ip.Text = "") Then
MsgBox ("Vous avez oublié de mentionner l'adresse ip du poste")
Else
indice = indice + 1
tabip(indice - 1) = nouveau_ip.Text
chaine = CStr(indice + 1)
Listip.AddItem (tabip(indice - 1))
If (nbposte = indice) Then
Validebuttonip.Enabled = False
shutdown.Enabled = True
Else
Labelnouveauip.Caption = "Donnez l'ip de l'ordinateur n°" + chaine + " :"
End If
End If
End If
End Sub


Private Sub Valideip_Click()
If (Valideip.Value = 0) Then
shutdown.Enabled = False
Validebuttonip.Enabled = True
nbposte1.Enabled = True
nouveau_ip.Enabled = True
Listip.Clear
End If
End Sub
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
14 déc. 2005 à 17:40
hmmm....
et tu es sur que ton programme fonctionne bien quand tu le lance directement depuis la source ?

bizare. je ne vois pas ce qui peut faire ca.


juste une precision : quand tu fais
Dim nbposte, indice As Integer
nbPoste n'est pas défini en tant que Integer, mais en tant que variant.

il te faudra faire dim nbPoste as integer, indice as integer.

pour faire le test, avant de lancer ta boucle ou il y a les shutdown, fait un msgBox pour afficher la valeur de nbPoste. il se pourrait que cette variable ne soit pas a la valeur voulue ( a mon avis elle vaut 0)
0
Rejoignez-nous