Page 1 sur 1

[R] Empecher la mise en veille  

Posté : mer. 03 juil. 2019 15:43
par DimVar
Bonjour,

Je cherche à empecher la mise en veille sur mon poste de travail, soumis à des GPO qui empechent l'acces à la gestion de la mise en veille (win 10).
J'ai les droits admin local, j'ai de suite pensé à powercfg avec qq parametres pour desactiver le mise en veille, mais pas les droits.
Je pense donc à une boucle qui send un touche clavier ou click souris, mais lequel ou laquelle sans que ce ne gene mona ctivité sur le bureau.
Avez vous d'autres idées ?

Merci.


Cdlt.
Dimvar.

Re: [..] Empecher la mise en veille

Posté : mer. 03 juil. 2019 23:35
par TommyDDR
Savez-vous au bout de combien de temps la mise en veille se lance ?

Re: [..] Empecher la mise en veille

Posté : jeu. 04 juil. 2019 08:16
par mikell

Re: [..] Empecher la mise en veille

Posté : jeu. 04 juil. 2019 12:25
par DimVar
@Tommy : Oui, 15mn.
@mickell : merci, je vais regarder.

J'ai pour l'instant pondu ca, en cours de test.
Global $timeset, $time


$timeset = TimerInit ()


While 1
_Timer()
Wend

Func _Timer()


   Local $posMouse =""
   $time = TimerDiff ($timeset)
   If $time < 840000 Then
      $timeset = TimerInit () ;si le temps ecoulé est sup à 14mn, alors on fait un deplacement de souris et re-init du temps
      $posMouse = MouseGetPos ()
      MouseMove ($posMouse[0] +1, $posMouse[1] +1)
   EndIf

EndFunc

Re: [..] Empecher la mise en veille

Posté : jeu. 04 juil. 2019 14:14
par DimVar
Arf !
D'apres le forum Anglais, le mousemove ne fonctionne pas sur une VM (machine virtuelle).
Je dois semble t il faire appel à du _WinAPI*
Ca vous parle ?

Merci.

Ps : j ai testé un simple script qui fait un mousemove(1,1), et en effet, rien ne bouge.

Re: [..] Empecher la mise en veille

Posté : jeu. 04 juil. 2019 14:24
par jchd
Sinon, envoyer un Shift-Down immédiatement suivi d'un Shift-Up (ou Ctrl- ou Alt-) tout les 10 minutes devrait/pourrait marcher, sauf erreur.

Re: [..] Empecher la mise en veille

Posté : jeu. 04 juil. 2019 14:37
par DimVar
En effet, mais je cherchais une action qui n'impactais pas le travail sur le bureau (ou sur une appli).
Si je suis sur un notepad++ et que je m'apprete à supprimer un bloc de code, et que le shift UP arrive, aie :)

[edit] je teste la soluce de Mikell actuellement (obligé d'attendre les 15mn definies par l'admin du domaine :? )

Re: [..] Empecher la mise en veille

Posté : jeu. 04 juil. 2019 14:41
par mikell
DimVar a écrit : jeu. 04 juil. 2019 14:14Je dois semble t il faire appel à du _WinAPI*
Ca vous parle ?
Oui

:mrgreen:

Edit : ce n'est pas ma solution, c'est celle d'orax (et du forum US)

Re: [..] Empecher la mise en veille

Posté : jeu. 04 juil. 2019 15:00
par DimVar
Ben oui :oops: :roll:

Re: [..] Empecher la mise en veille

Posté : jeu. 04 juil. 2019 15:31
par DimVar
En effet, ca fait le taff !
Merci. :bisou:

Re: [R] Empecher la mise en veille

Posté : jeu. 04 juil. 2019 23:13
par TommyDDR
Pour les solutions de shift down / up, vous pouvez le lier à :
qui permet de connaitre le nombre de millisecondes d'inactivité.

Ce qui pourrait donner une fonction qui vérifie si on a dépassé les 14 minutes d'absence :
#include <WinAPISys.au3>

setIdleMax(15)

While(1)
   Sleep(10)
WEnd

Func setIdleMax($min = Null)
   Local Static $userMin = Null
   Local Static $userFunc = Null
   If(IsDeclared('min')) Then
      $userMin = $min
   EndIf
   Local $msIdle = _WinAPI_GetIdleTime()
   Local $msec = $userMin * 60000
   Local $time = $msec - $msIdle - 100
   If($time <= 0) Then
      ConsoleWrite("shift !" & @CRLF)
      Send("{LSHIFT DOWN}")
      Send("{LSHIFT UP}")
   EndIf
   AdlibRegister(setIdleMax, $time)
EndFunc
Comme ça vous avez une fonction qui s'auto gère, vous pouvez avoir ce que vous voulez dans le while si vous voulez faire autre chose et vous pouvez même réappeler setIdleMax en changeant la valeur de temps au cours du programme.

Re: [R] Empecher la mise en veille

Posté : ven. 05 juil. 2019 00:14
par jchd
Pour les solutions de shift down / up, vous pouvez le lier à _WinAPI_GetIdleTime() qui permet de connaitre le nombre de millisecondes d'inactivité.
Tout à fait. Si la machine est idle depuis 14 minutes, la probabilité que lorsqu'on fait un shift down-up interfère avec une action "en cours" (alors qu'il ne se passe rien depuis un bail) est AMHA extrêmement faible.

Ceci dit, s'il y a une primitive toute ficelée qui fait le boulot, autant l'utiliser.

Re: [R] Empecher la mise en veille

Posté : ven. 05 juil. 2019 12:07
par DimVar
@Tommy : Merci pour ce complément.