Ecran de veille

Signaler
Messages postés
24
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
19 mai 2008
-
Messages postés
32
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
18 mai 2012
-
Comment peut on faire :
- interrompre l'écran de veille de windows (faire une simulation de mouvement de la souris ou l'appui sur une touche)
- puis le désactiver (Ecran de veille =Aucun).
- Puis l'activer (Ecran de veille =Bézier par exemple)

Merci de m'aider

8 réponses

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
Heu, je sais pas si j'ai tout compris mais tu veux faire un prog qui change l'écran de veille ?

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Messages postés
24
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
19 mai 2008

Plus ou moins...
En fait je veux faire un prog qui interrompt l'écran de veille pour afficher un message à l'écran. Car si l'écran de veille est en marche, l'opérateur qui passe devant le pc ne verra pas le message. (Le prog tourne sur un pc où il n'y a personne dessus (il est dans un couloir). Et je voudrais que les personnes qui passe dans ce couloir voit s'il y a un message à l'écran)
C'est pour cela que je voudrais change l'écran de veille en mode Aucun ou en mode Bezier par exemple.

Je ne sais pas si j'ai été plus clair?
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
En fait ce que je te conseil, c'est de faire toi même un écran de veille qui réagira s'il y a un message.
Ensuite cet écran de veille, tu le lance en allant dans : Propriété d'affichage - Ecran de veille, tu sélectionne le tiens et c'est parti.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Messages postés
24
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
19 mai 2008

Et comment on fait ca?
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
Ok, fait un projet avec un fond Noir, ensuite il faut que tu y déclare tes fonctions et actions.

exemple :

Sub form_MouseMove (....) 'Ce qui va se passer si on bouge la souris
end 'On sort du programme
end Sub

Il faut faire un truc de ce genre pour aussi tout ce qui est KeyPress, etc... C'est pour stopper l'écran de veille, ensuite pour afficher un message :

sub form_unload()
msgbox MeSS 'Affiche le message MeSS lors de la sortie du prog.
end sub

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Messages postés
24
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
19 mai 2008

Merci pour ton aide

a+
Messages postés
2
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 mai 2008

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_SYSCOMMAND = &H112&
Private Const SC_SCREENSAVE = &HF140&


Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long


Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const VK_SPACE As Long = &H20
Private Const WM_KEYDOWN As Long = &H100
-----------------------------------------------------------------


Private Sub Form_Load()
'Déclenche l'économiseur d'écran
Call SendMessage(Me.hwnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
Timer1.Enabled = True
Timer1.Interval = 2000
End Sub
-------------------------------------------------------------------




Private Sub Timer1_Timer()
'arrete l'économiseur d'écran au bout de 2s


Dim tWnd As Long, bWnd As Long, sSave As String * 250
    tWnd = GetForegroundWindow() 'récupere hwnd de la fenetre en service
    Debug.Print tWnd
    GetClassName tWnd, sSave, 250 'récupere sa class
    Debug.Print (Left$(sSave, 50))
    ' si c'est l'économiseur, lui envoyer la touche space
    If LCase(Left$(sSave, 23)) = "windowsscreensaverclass" Then
        PostMessage tWnd, WM_KEYDOWN, VK_SPACE, 0
    End If
        Timer1.Enabled = False
End Sub
Messages postés
32
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
18 mai 2012

Salut Zego,

J'ai essayé ta proposition sur un PC avec windows XP Pro et cela ne marche pas.
L'appel se fait bien mais en fin de timer l'ecran reste en veille.

Si tu es encore en écoute peux tu faire quelque chose pour moi, je recherche cette fonction depuis déjà pas mal de temps et je pense que tu es le premier à t'en approcher.
Mon appli est en VB6 et sur un écran tactile fonctionnant sans personne, le but de cette demande est de réveillé le PC par la liaison série.

Merci de m'aider,
Phoenix591