OVH Cloud OVH Cloud

neutralisation economiseur d'écran

5 réponses
Avatar
Elicend_News
Salut

j'ai une appli excel qui tourne pendant un bon moment, entre 20 et 45
minutes ! pour gagner du temps j'ai neutralisé l'affichage de l'écran et il
ne reste plus que des progress bars qui bougent pour m'indiquer ou il en est
des calculs.

y a t il un moyen simple de neutraliser l'économiseur d'écran le temps que
dure les opération un peu comme le application.screenupdating= false car
lorsqu'il se déclenche, si je réouvre ma session, comme l'application screen
updating est à Off j'a plus rien à l'ecran et mes progress bar sont beaucoup
moins belle, du coup j'ai plus de mal a détecter un plantage :(

merci d'avance !

--
Encore merci / Thanks a lot !

@ plus
Elicend

5 réponses

Avatar
Alain CROS
Bonjour.

Pour désactiver l'écran de veille

Private Declare Function SystemParametersInfo& _
Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction&, ByVal uParam&, ByRef lpvParam&, ByVal fuWinIni&)

Sub SansScreenSaver()
Const SPI_SETSCREENSAVEACTIVE& = 17&
SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 0&, ByVal 0&, 0&
End Sub

Par contre pour le réactiver ou changer le temps avec SPI_SETSCREENSAVEACTIVE et SPI_SETSCREENSAVETIMEOUT, il n'y a pas moyen.
Si quelqu'un a une piste? merci!

Alain CROS

"Elicend_News" <inconicoAfreePOINTfr> a écrit dans le message de news: 426625aa$0$20430$
Salut

j'ai une appli excel qui tourne pendant un bon moment, entre 20 et 45
minutes ! pour gagner du temps j'ai neutralisé l'affichage de l'écran et il
ne reste plus que des progress bars qui bougent pour m'indiquer ou il en est
des calculs.

y a t il un moyen simple de neutraliser l'économiseur d'écran le temps que
dure les opération un peu comme le application.screenupdating= false car
lorsqu'il se déclenche, si je réouvre ma session, comme l'application screen
updating est à Off j'a plus rien à l'ecran et mes progress bar sont beaucoup
moins belle, du coup j'ai plus de mal a détecter un plantage :(

merci d'avance !

--
Encore merci / Thanks a lot !

@ plus
Elicend




Avatar
Jacques93
Bonjour,


Private Declare Function SystemParametersInfo& _
Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction&, ByVal uParam&, ByRef lpvParam&, ByVal fuWinIni&)
Private Const SPI_GETSCREENSAVETIMEOUT = 14&
Private Const SPI_SETSCREENSAVETIMEOUT = 15&
Private Const SPI_GETSCREENSAVEACTIVE& = 16&
Private Const SPI_SETSCREENSAVEACTIVE& = 17&
Private Const SPIF_UPDATEINIFILE = 1&
Private Const SPIF_SENDWININICHANGE = 2&

Private Sub ScreenSaverOn()
Dim State As Long, Delay As Long

Delay = 300
SystemParametersInfo SPI_SETSCREENSAVETIMEOUT, Delay, 0&, 0&
SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 1&, ByVal 0&,
SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE

SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0&, State, 0&
SystemParametersInfo SPI_GETSCREENSAVETIMEOUT, 0&, Delay, 0&
Debug.Print State; Delay
End Sub

Private Sub ScreenSaverOff()
Dim State As Long, Delay As Long

SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 0&, ByVal 0&,
SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE
SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0&, State, 0&
SystemParametersInfo SPI_GETSCREENSAVETIMEOUT, 0&, Delay, 0&
Debug.Print State; Delay

End Sub

Alain CROS wrote:
Bonjour.

Pour désactiver l'écran de veille

Private Declare Function SystemParametersInfo& _
Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction&, ByVal uParam&, ByRef lpvParam&, ByVal fuWinIni&)

Sub SansScreenSaver()
Const SPI_SETSCREENSAVEACTIVE& = 17&
SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 0&, ByVal 0&, 0&
End Sub

Par contre pour le réactiver ou changer le temps avec SPI_SETSCREENSAVEACTIVE et SPI_SETSCREENSAVETIMEOUT, il n'y a pas moyen.
Si quelqu'un a une piste? merci!



--
Cordialement,

Jacques.

Avatar
Alain CROS
Bonjour.

Ok merci bien.
Sur mon système W98, il faut que j'écrive :
SystemParametersInfo SPI_SETSCREENSAVETIMEOUT, Delay, ByVal 0&, 0&
pour que Delay soit pris en compte.

Alain CROS

"Jacques93" a écrit dans le message de news: #
Bonjour,


Private Declare Function SystemParametersInfo& _
Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction&, ByVal uParam&, ByRef lpvParam&, ByVal fuWinIni&)
Private Const SPI_GETSCREENSAVETIMEOUT = 14&
Private Const SPI_SETSCREENSAVETIMEOUT = 15&
Private Const SPI_GETSCREENSAVEACTIVE& = 16&
Private Const SPI_SETSCREENSAVEACTIVE& = 17&
Private Const SPIF_UPDATEINIFILE = 1&
Private Const SPIF_SENDWININICHANGE = 2&

Private Sub ScreenSaverOn()
Dim State As Long, Delay As Long

Delay = 300
SystemParametersInfo SPI_SETSCREENSAVETIMEOUT, Delay, 0&, 0&
SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 1&, ByVal 0&,
SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE

SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0&, State, 0&
SystemParametersInfo SPI_GETSCREENSAVETIMEOUT, 0&, Delay, 0&
Debug.Print State; Delay
End Sub

Private Sub ScreenSaverOff()
Dim State As Long, Delay As Long

SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 0&, ByVal 0&,
SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE
SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0&, State, 0&
SystemParametersInfo SPI_GETSCREENSAVETIMEOUT, 0&, Delay, 0&
Debug.Print State; Delay

End Sub


Avatar
Jacques93
Bonjour,

Effectivement, ja n'avais pas précisé que j'étais sous XP,
bien que je ne vois pas très bien la nuance, ayant utilisé la
déclaration d'API indiquée dans ton post ??? Mystère.

Alain CROS wrote:
Bonjour.

Ok merci bien.
Sur mon système W98, il faut que j'écrive :
SystemParametersInfo SPI_SETSCREENSAVETIMEOUT, Delay, ByVal 0&, 0&
pour que Delay soit pris en compte.

Alain CROS

"Jacques93" a écrit dans le message de news: #

Bonjour,


Private Declare Function SystemParametersInfo& _
Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction&, ByVal uParam&, ByRef lpvParam&, ByVal fuWinIni&)
Private Const SPI_GETSCREENSAVETIMEOUT = 14&
Private Const SPI_SETSCREENSAVETIMEOUT = 15&
Private Const SPI_GETSCREENSAVEACTIVE& = 16&
Private Const SPI_SETSCREENSAVEACTIVE& = 17&
Private Const SPIF_UPDATEINIFILE = 1&
Private Const SPIF_SENDWININICHANGE = 2&

Private Sub ScreenSaverOn()
Dim State As Long, Delay As Long

Delay = 300
SystemParametersInfo SPI_SETSCREENSAVETIMEOUT, Delay, 0&, 0&
SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 1&, ByVal 0&,
SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE

SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0&, State, 0&
SystemParametersInfo SPI_GETSCREENSAVETIMEOUT, 0&, Delay, 0&
Debug.Print State; Delay
End Sub

Private Sub ScreenSaverOff()
Dim State As Long, Delay As Long

SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 0&, ByVal 0&,
SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE
SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0&, State, 0&
SystemParametersInfo SPI_GETSCREENSAVETIMEOUT, 0&, Delay, 0&
Debug.Print State; Delay

End Sub







--
Cordialement,

Jacques.


Avatar
Elicend_News
Merci beaucoup !! j'essaye dans la journée !!

sous VB, j'avais trouvé une solution un peu "batarde" mais c'etait sur un
autre type d'application qui en fait tournait mais pouvait rester inactive
pendant quelques temps, donc qd elle etait active, et donc que qq'un
regardait ce qui se passe, a chaque action je faisais déplacer le curseur
automatiquement (biensur, l'utilisateur n'était que spéctateur dans cet
appli) et lorsque plus personne n'utilise l'application, le curseur ne bouge
plus seul, et donc l'economiseur revenait ;) (c'etait pour un compte tour de
circuit routier !)

la ca me va bien comme sol celle que tu m'as donné!
merci

elicend
"Jacques93" a écrit dans le message de
news:%
Bonjour,

Effectivement, ja n'avais pas précisé que j'étais sous XP,
bien que je ne vois pas très bien la nuance, ayant utilisé la
déclaration d'API indiquée dans ton post ??? Mystère.

Alain CROS wrote:
Bonjour.

Ok merci bien.
Sur mon système W98, il faut que j'écrive :
SystemParametersInfo SPI_SETSCREENSAVETIMEOUT, Delay, ByVal 0&, 0&
pour que Delay soit pris en compte.

Alain CROS

"Jacques93" a écrit dans le message
de news: #



Bonjour,


Private Declare Function SystemParametersInfo& _
Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction&, ByVal uParam&, ByRef lpvParam&, ByVal fuWinIni&)
Private Const SPI_GETSCREENSAVETIMEOUT = 14&
Private Const SPI_SETSCREENSAVETIMEOUT = 15&
Private Const SPI_GETSCREENSAVEACTIVE& = 16&
Private Const SPI_SETSCREENSAVEACTIVE& = 17&
Private Const SPIF_UPDATEINIFILE = 1&
Private Const SPIF_SENDWININICHANGE = 2&

Private Sub ScreenSaverOn()
Dim State As Long, Delay As Long

Delay = 300
SystemParametersInfo SPI_SETSCREENSAVETIMEOUT, Delay, 0&, 0&
SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 1&, ByVal 0&,
SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE

SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0&, State, 0&
SystemParametersInfo SPI_GETSCREENSAVETIMEOUT, 0&, Delay, 0&
Debug.Print State; Delay
End Sub

Private Sub ScreenSaverOff()
Dim State As Long, Delay As Long

SystemParametersInfo SPI_SETSCREENSAVEACTIVE, 0&, ByVal 0&,
SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE
SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0&, State, 0&
SystemParametersInfo SPI_GETSCREENSAVETIMEOUT, 0&, Delay, 0&
Debug.Print State; Delay

End Sub







--
Cordialement,

Jacques.