Comment mettre en veille

Résolu
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007 - 21 août 2006 à 17:54
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007 - 21 août 2006 à 21:54
Bonjour. je suis debutant et j'ai besoin d'aide.
J'ai une code comme sa qui permet de redemarrer et arreter le PC.

<hr size="2" width="100%" />Option Explicit

Dim OkShutDown As Boolean
Dim OkReBoot As Boolean

Private Sub Annuler_Click()
OkShutDown = False
OkReBoot = False
Timer.Interval = 0
End Sub

Private Sub Execute_Click()

If Me.Arreter.Value = vbChecked Then
   
    If IsNull(MHeure) Or MHeure = "" Then
    MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
    Exit Sub
    End If
   
    If MsgBox("Voulez-vous vraiment éteindre votre PC  à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
        OkShutDown = True
        Timer.Interval = 1000
    Else
        OkShutDown = False
    End If
   
ElseIf Me.redemarrer.Value = vbChecked Then
   
    If IsNull(MHeure) Or MHeure = "" Then
    MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
    Exit Sub
    End If
   
    If MsgBox("Voulez-vous vraiment redémarrer votre PC à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
        OkReBoot = True
        Timer.Interval = 1000
    Else
        OkReBoot = False
    End If
Else
MsgBox "Vous devez sélectionner une tâche !", vbExclamation
End If

End Sub

Private Sub Form_Load()
OkShutDown = False
OkReBoot = False

Me.MHeure.Value = Format(Time, "hh:nn")
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)    If UnloadMode 0 Or UnloadMode 1 Then
        Cancel = True
        Me.Hide
        Load FrmTray
        FrmTray.Hide
    End If
End Sub

Private Sub Timer_Timer()
Dim i As Integer

If Format(Time, "hh:nn") = Format(MHeure, "hh:nn") Then
    If OkShutDown = True Then
            i = ExitWindowsEx(EWX_SHUTDOWN, 0)
    End If
   
    If OkReBoot = True Then
            i = ExitWindowsEx(EWX_REBOOT, 0)
    End If

End If
End Sub
<hr size="2" width="100%" />
Je voudrais demander si vous pouvez m'aider pour une simple code qui permet de mettre en veille. Merci d'avance

11 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 août 2006 à 21:28
Private Sub Execute_Click()

If Me.Arreter.Value = vbChecked Then

If IsNull(MHeure) Or MHeure = "" Then
MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
Exit Sub
End If

If MsgBox("Voulez-vous vraiment éteindre votre PC à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
OkShutDown = True
Timer.Interval = 1000
Else
OkShutDown = False
End If

ElseIf Me.redemarrer.Value = vbChecked Then

If IsNull(MHeure) Or MHeure = "" Then
MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
Exit Sub
End If

If MsgBox("Voulez-vous vraiment redémarrer votre PC à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
OkReBoot = True
Timer.Interval = 1000
Else
OkReBoot = False
End If
ElseIf Me.Veille.Value = vbChecked Then ' ********* ICI *********

If IsNull(MHeure) Or MHeure = "" Then
MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
Exit Sub
End If

If MsgBox("Voulez-vous vraiment mettre votre PC en veille à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
OKVeille = True
Timer.Interval = 1000
Else
OKVeille = False
End If
Else
MsgBox "Vous devez sélectionner une tâche !", vbExclamation
End If

End Sub

++
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 août 2006 à 18:18
Salut,

utilise cette API et ces procédures :

Private Declare Function SetSystemPowerState Lib "kernel32" (ByVal fSuspend As Long, ByVal fForce As Long) As Long

Private Sub ModeVeille(Parametre As Integer)
On Error Resume Next
SetSystemPowerState 1, Parametre
End Sub

'Mise en veille. Question sur la fermeture réseau
Private Sub Command1_Click()
ModeVeille 0
End Sub

'Mise en veille forcée. Aucune question ne sera posée.
Private Sub Command2_Click()
ModeVeille 1
End Sub

++
mortalino
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
21 août 2006 à 18:53
Bonjour. En fait mon projet est fait avec un timer donc je vodrais faire *mettre en veille* avec les memes fonctions que :
*OkShutDown = False
OkReBoot = False*

Et tu pourra me dire ou il faut mettre sil tout plait car je suis debutant. Merci
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 août 2006 à 19:01
Essai ceci :

Option Explicit

Private Declare Function SetSystemPowerState Lib "kernel32" (ByVal fSuspend As Long, ByVal fForce As Long) As Long 'rajout ICI

Dim OkShutDown As Boolean
Dim OkReBoot As Boolean
Dim OKVeille As Boolean 'rajout ICI


Private Sub Annuler_Click()
OkShutDown = False
OkReBoot = False
OKVeille = False 'rajout ICI

Timer.Interval = 0
End Sub


Private Sub Execute_Click()

If Me.Arreter.Value = vbChecked Then

If IsNull(MHeure) Or MHeure = "" Then
MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
Exit Sub
End If

If MsgBox("Voulez-vous vraiment éteindre votre PC à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
OkShutDown = True
Timer.Interval = 1000
Else
OkShutDown = False
End If

ElseIf Me.redemarrer.Value = vbChecked Then

If IsNull(MHeure) Or MHeure = "" Then
MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
Exit Sub
End If

If MsgBox("Voulez-vous vraiment redémarrer votre PC à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
OkReBoot = True
Timer.Interval = 1000
Else
OkReBoot = False
End If
Else
MsgBox "Vous devez sélectionner une tâche !", vbExclamation
End If

End Sub

Private Sub Form_Load()
OkShutDown = False
OkReBoot = False
OKVeille = False 'rajout ICI

Me.MHeure.Value = Format(Time, "hh:nn")
End Sub


Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode 0 Or UnloadMode 1 Then
Cancel = True
Me.Hide
Load FrmTray
FrmTray.Hide
End If
End Sub

Private Sub Timer_Timer()
Dim i As Integer

If Format(Time, "hh:nn") = Format(MHeure, "hh:nn") Then
If OkShutDown = True Then
i = ExitWindowsEx(EWX_SHUTDOWN, 0)
End If

If OkReBoot = True Then
i = ExitWindowsEx(EWX_REBOOT, 0)
End If

If OKVeille = True Then ModeVeille 1 'rajout ICI

End If
End Sub

Private Sub ModeVeille(Parametre As Integer)
On Error Resume Next
SetSystemPowerState 1, Parametre
End Sub
__________________________________________________________________________________

A toi de déterminer quand tu souhaites mettre OKVeille = True

++
mortalino
0

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

Posez votre question
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
21 août 2006 à 19:54
Voila j'ai une problemme. Je vous explique. Mon projet etait sa

REYOPTIONBUTTON que j'ai appelle Veille puis quand je met ton source sa ne marche pas sa me met *Vous devez sélectionner une tâche !*
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 août 2006 à 20:32
Private Sub Execute_Click()

If Me.Arreter.Value = vbChecked Then

If IsNull(MHeure) Or MHeure = "" Then
MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
Exit Sub
End If

If MsgBox("Voulez-vous vraiment éteindre votre PC à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
OkShutDown = True
Timer.Interval = 1000
Else
OkShutDown = False
End If

ElseIf Me.redemarrer.Value = vbChecked Then

If IsNull(MHeure) Or MHeure = "" Then
MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
Exit Sub
End If

If MsgBox("Voulez-vous vraiment redémarrer votre PC à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
OkReBoot = True
Timer.Interval = 1000
Else
OkReBoot = False
End If
If Me.Veille.Value = vbChecked Then

If IsNull(MHeure) Or MHeure = "" Then
MsgBox "Vous devez sélectionner une heure d'éxecution !", vbExclamation
Exit Sub
End If

If MsgBox("Voulez-vous vraiment mettre votre PC en veille à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
OKVeille = True
Timer.Interval = 1000
Else
OKVeille = False
End If
Else
MsgBox "Vous devez sélectionner une tâche !", vbExclamation
End If

End Sub
___________________________________________________________________________________

je t'ai intégré le bouton dans ta procédure Click du bouton exécuter !

++
mortalino
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 août 2006 à 20:34
Ne pas lire
"je t'ai intégré le bouton dans ta procédure Click du bouton exécuter !"

mais

"je t'ai intégré <la mise en veille> dans ta procédure Click du bouton exécuter !"

++
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
21 août 2006 à 21:13
Bonsoir.
Maintenant j'ai sa
*End If
End Sub*

Erreur compilation.
Bloc If sans End If

Excusez moi de vous demander tant de fois.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 août 2006 à 21:17
Oups, je me suis loupé !

dans "If Me.Veille.Value = vbChecked Then"

remplace le If par ElseIf, ça le fera mieux !

++
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
21 août 2006 à 21:26
 If MsgBox("Voulez-vous vraiment mettre votre PC en veille à " & MHeure & " ?", vbInformation + vbYesNo) = vbYes Then
        OKVeille = True
        Timer.Interval = 1000
    Else
        OKVeille = False
    End If
Else
MsgBox "Vous devez sélectionner une tâche !", vbExclamation
End If

End Sub
******
IL faut mettre quoi. Je remplace par  ElseIf et sa march pas.
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
21 août 2006 à 21:54
Un tres tres grand merci a vous.
0
Rejoignez-nous