Problème Shutdown time

Problème Shutdown time - VB/VBA/VBS - Programmation

Marsh Posté le 01-08-2009 à 16:06:06    

Edit: problème en fin de page  

Bonjour,
Pouriez vous m'expliquer pourquoi sous Visual Basic 2008
 
Par exemple sur ce boutton :
 
Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click
        If btrestart.Checked = True Then Shell("shutdown -r" )
        If btstop.Checked = True Then Shell("Shutdown -s -t 28800" )
        If btsess.Checked = True Then Shell("shutdown -l" )
        If btstop.Checked = False And btstop.Checked = False And btsess.Checked = False Then
            MsgBox("Veuillez cocher l'une des 3 commandes suivantes:" & vbCr & "Eteindre" & vbCr & "Redémarrer" & vbCr & "Fermer La Session" & vbInformation & "Choisissez une commande" )
        End If
 
        If btstop.Checked Then confirm1 = MsgBox("Etes vous sure de programmer l'Arret du PC ?", vbYesNo, "Confirmation" )
        Select Case confirm1
            Case vbYes
                btstop.Enabled = True
            Case vbNo
                Shell("shutdown -a" )
        End Select
 
        If btrestart.Checked Then confirm2 = MsgBox("Etes vous sure de programmer le Redémarrage ?", vbYesNo, "Confirmation" )
        Select Case confirm2
            Case vbYes
                btrestart.Enabled = True
            Case vbNo
                Shell("shutdown -a" )
        End Select
 
        If btsess.Checked Then confirm3 = MsgBox("Etes vous sure de programmer La fermeture de Session", vbYesNo, "Confirmation" )
        Select Case confirm3
            Case vbYes
                btsess.Enabled = True
            Case vbNo
Shell("shutdown -a" )
        End Select
    End Sub
 
Normalement lorsque je coche Soit eteindre soit redémarrer soit fermer la session et que je clique sur le boutton 21 il doit me demander dans une fenetre si je suis sure de ma commande.
Et alors la si je clique sur oui, il execute la commande d'activer le boutton stop
If btstop.Checked = True Then Shell("Shutdown -s -t 28800" )
 
et si je clique sur non il execute la commande  
Shell("shutdown -a" )
 
Les deux commandes sont bien effectué sauf que cela s'execute avant que je clique sur oui pour confirmer.
Comment réparer cela svp ?


Message édité par hitman94 le 03-08-2009 à 03:10:50
Reply

Marsh Posté le 01-08-2009 à 16:06:06   

Reply

Marsh Posté le 01-08-2009 à 21:05:59    

Bonsoir,
 
If btstop.Checked Then
 confirm1 = MsgBox("Etes vous sure de programmer l'Arret du PC ?", vbYesNo, "Confirmation" )  
        Select Case confirm1  
            Case vbYes  
                btstop.Enabled = True  
            Case vbNo  
                Shell("shutdown -a" )  
        End Select  
end if
 
Cordialement

Reply

Marsh Posté le 01-08-2009 à 21:14:17    

Bonsoir seniorpapou
Merci de ta réponse ;)
Mais ce n'es pas exactement la même commande que mois mis apart que j'ai fait mon if en une seule ligne ?

Reply

Marsh Posté le 01-08-2009 à 21:24:55    

Sa ne marche toujours pas :s
Il n'attend pas que je lui confirme oui :/

Reply

Marsh Posté le 02-08-2009 à 07:04:01    

Bonjour,
fais un copier coller de ta séquence.
 
Ton if en une seule ligne ne fonctionne pas du tout comme le If  que je t'ai indiqué:  
 
En "une seule ligne", dans le cas où btstop.Checked  est vrai, seule la partie confirm1 = MsgBox("Etes vous sure de programmer l'Arret du PC ?", vbYesNo, "Confirmation" )  avec enchainement sur select case
est exécutée. Et, lorsque btstop.Checked  est faux : on enchaine sur "select case" , ce que tu ne souhaites pas.
 
Dans le modèle que je t'ai donné, l'ensemble de la séquence :
 
confirm1 = MsgBox("Etes vous sure de programmer l'Arret du PC ?", vbYesNo, "Confirmation" )  
        Select Case confirm1  
            Case vbYes  
                btstop.Enabled = True  
            Case vbNo  
                Shell("shutdown -a" )  
        End Select  
 
Est exécutée dans le cas où btstop.Checked  est vrai et l'ensemble de la séquence est sautée  dans le cas où btstop.Checked  est faux.
 
Bien entendu il te faut appliquer ce modèle sur tes trois "If"
Cordialement
 
S'il enchaine systématiquement c'est parce que  btstop.Checked  et les autres sont tous à "false"


Message édité par seniorpapou le 02-08-2009 à 07:06:22
Reply

Marsh Posté le 02-08-2009 à 12:51:28    

Bonsoir oui je m'en suis rendu compte après (logique)
Mais sa ne marche toujours pas c'est bizarre
 
 
 
 If btstop.Checked = False And btrestart.Checked = False And btsess.Checked = False Then
            MsgBox("Veuillez cocher l'une des 3 commandes suivantes:" & vbCr & "Eteindre" & vbCr & "Redémarrer" & vbCr & "Fermer La Session" & vbInformation & "Choisissez une commande" )
        End If
 
        If btstop.Checked Then
            confirm1 = MsgBox("Etes vous sure de programmer l'Arret du PC ?", vbYesNo, "Confirmation" )
            Select Case confirm1
                Case vbYes
                    btstop.Enabled = True
                Case vbNo
                    Shell("shutdown -a" )
            End Select
        End If
 
        If btrestart.Checked Then
 
 
            confirm2 = MsgBox("Etes vous sure de programmer le Redémarrage ?", vbYesNo, "Confirmation" )
            Select Case confirm2
                Case vbYes
                    btrestart.Enabled = True
                Case vbNo
                    Shell("shutdown -a" )
            End Select
        End If
 
 
        If btsess.Checked Then
            confirm3 = MsgBox("Etes vous sure de programmer La fermeture de Session", vbYesNo, "Confirmation" )
            Select Case confirm3
                Case vbYes
                    btsess.Enabled = True
                Case vbNo
                    Shell("shutdown -a" )
            End Select
        End If
        If btrestart.Checked = True Then Shell("shutdown -s -t 300" )
        If btstop.Checked = True Then Shell("shutdown r" )
        If btsess.Checked = True Then Shell("shutdown -l" )
    End Sub

Reply

Marsh Posté le 02-08-2009 à 15:02:00    

Ah si c'est bon sa marche
A la place de shutdown -a j'ai mi exit sub :)
Merci de ton aide pour le IF tu m'a bien aider
 
J'ai juste un petit probleme dans le corp d'une msgbox
 
  MsgBox("Veuillez cocher l'une des 3 commandes suivantes:" & vbCr & "- Eteindre" & vbCr & "- Redémarrer" & vbCr & "- Fermer La Session" & vbInformation & "Choisissez une commande" )
 
Cela me fait une erreur avec le titre et il m'affiche 64 :
http://img34.imageshack.us/img34/1373/msgbox.gif

Reply

Marsh Posté le 02-08-2009 à 15:03:42    

Résolu :
 
   MsgBox("Veuillez cocher l'une des 3 commandes suivantes:" & vbCr & "- Eteindre" & vbCr & "- Redémarrer" & vbCr & "- Fermer La Session", vbInformation, "Choisissez une commande" )
 
Encore un petit probleme ^^
Par défault le premier bouton est bleui, ce qui fait que si j'appui sur entré sur le clavier sa l'activre.
Comment désactiver cela ?

Reply

Marsh Posté le 02-08-2009 à 16:24:11    

Bonsoir,
il faut faire un "setfocus" sur autre chose à l'ouverture du formulaire
 
plus simplement: ne pas faire "entrée" si tu n'en a pas besoin
 
ou encore sur ton formulaire en mode création: clic droite sur le carré noir en haut à gauche et sélectionne ordre de tabulation, tu peux alors mettre en tête l'objet où tu veux voir le focus se mettre à l'ouverture


Message édité par seniorpapou le 02-08-2009 à 16:37:16
Reply

Marsh Posté le 02-08-2009 à 16:47:50    

Merci à toi
 
plus simplement: ne pas faire "entrée" si tu n'en a pas besoin  
Lol oui ^^ C'est juste histoire de savoir comment faire
 
il faut faire un "setfocus" sur autre chose à l'ouverture du formulaire  
Comment on fait exactement ?
 
clic droite sur le carré noir en haut à gauche et sélectionne ordre de tabulation,
 
J'ai pas sa

Reply

Marsh Posté le 02-08-2009 à 16:47:50   

Reply

Marsh Posté le 02-08-2009 à 17:42:03    

Salut ,effectivement jouer sur TabIndex ou voir aide en ligne sur Button.IsDefault

Reply

Marsh Posté le 02-08-2009 à 17:44:59    

Merci beaucoup a tous
 
Et encore un probleme sans vouloir faire mon relou ^^
 
Code :
 
If btrestart.Checked = True Then Shell("shutdown -s -t 600" )
        If btstop.Checked = True Then Shell("shutdown -r -t 600" )
        If btsess.Checked = True Then Shell("shutdown -l -t 600" )
 
En effet ici si je clique sur ce boutton donc et que btsess est coché, le pc devrait fermer la session dans 600 secondes après ma confirmation OUI.
Sauf que quand je confirme, il ferme la session de suite.
 
Si tu connais un peu cette commande pourrait tu m'éclairer.
merci  

Reply

Marsh Posté le 02-08-2009 à 21:22:47    

Bonsoir,
connais pas, mais essaye  -t600 au lieu -t 600

Reply

Marsh Posté le 02-08-2009 à 22:48:52    

Merci mais malheureusement non :s

Reply

Marsh Posté le 03-08-2009 à 06:36:45    

bonjour,
le -t n'est pris en compte que pour les mises hors tension , le -l étant une fermeture de session et non une mise hors tension , le -t n'est pas pris en compte.
il est bon pour -s et -r
J'ai testé sous cmd
Cordialement


Message édité par seniorpapou le 03-08-2009 à 07:35:08
Reply

Marsh Posté le 03-08-2009 à 13:16:32    

donc on ne peut retarder un redémarrage et une fermeture de session ?

Reply

Marsh Posté le 03-08-2009 à 15:38:44    

Sa y est effectivement sa ne marche que pour restart et eteindre
 
J'ai fini mon petit programme de débutant
Pourriez vous me dire comment je pourrais améliorer le code ?
Notamment au niveau des boutons ?
 
Voila j'ai tout uploader ici:
http://www.megaupload.com/?d=J1ZE19SM
 
Merci ^^

Reply

Marsh Posté le 03-08-2009 à 16:10:46    

Bonsoir,
difficile de critiquer ton projet. J'ai réussi à lancer ton exécutable, c'est du VB? je ne pratique pas. Toutefois, je me demande pourquoi tu n'as pas utilisé des zones de liste, une pour les heures, l'autre pour les minutes. Mais c'est une question de choix

Reply

Marsh Posté le 03-08-2009 à 16:24:15    

Bonsoir ou c'est mon deuxieme logiciel avec visual basic 2008
Car je ne savais pas encore faire avec le timer pour faire sa mais sa sera le prochain ^^

Reply

Marsh Posté le 03-08-2009 à 16:25:37    

Re,
waoohhh, je viens de lire ton code dans le form. Si tu tiens à conserver les boutons, je crois que tu dois pouvoir simplifier en appelant depuis chaque bouton_clic  un SUB... avec des paramètres d'appel : le temps et le choix de shutdown.
Ainsi les séquences que tu répètes dans chaque bouton_clic, se réduisent à une seule.

Reply

Marsh Posté le 03-08-2009 à 16:39:45    

Euh oui ok mdr ^^
je debute n'oubli pa :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed