Comment mettre en veille

Résolu
Signaler
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007
-
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007
-
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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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

++
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
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
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

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
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

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 !*
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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 !"

++
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

Bonsoir.
Maintenant j'ai sa
*End If
End Sub*

Erreur compilation.
Bloc If sans End If

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

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

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

++
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

 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.
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

Un tres tres grand merci a vous.