[R] Empecher la mise en veille

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 782
Enregistré le : ven. 30 mai 2008 14:08
Status : En ligne

[R] Empecher la mise en veille  

#1

Message par DimVar » mer. 03 juil. 2019 14:43

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.
Modifié en dernier par DimVar le jeu. 04 juil. 2019 14:32, modifié 1 fois.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !

Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 1804
Enregistré le : mar. 22 juil. 2008 20:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Empecher la mise en veille

#2

Message par TommyDDR » mer. 03 juil. 2019 22:35

Savez-vous au bout de combien de temps la mise en veille se lance ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5858
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Empecher la mise en veille

#3

Message par mikell » jeu. 04 juil. 2019 07:16

" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 782
Enregistré le : ven. 30 mai 2008 14:08
Status : En ligne

Re: [..] Empecher la mise en veille

#4

Message par DimVar » jeu. 04 juil. 2019 11:25

@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
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !

Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 782
Enregistré le : ven. 30 mai 2008 14:08
Status : En ligne

Re: [..] Empecher la mise en veille

#5

Message par DimVar » jeu. 04 juil. 2019 13:14

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.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !

jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2076
Enregistré le : lun. 30 mars 2009 21:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Empecher la mise en veille

#6

Message par jchd » jeu. 04 juil. 2019 13:24

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.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.

Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 782
Enregistré le : ven. 30 mai 2008 14:08
Status : En ligne

Re: [..] Empecher la mise en veille

#7

Message par DimVar » jeu. 04 juil. 2019 13:37

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 :? )
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5858
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Empecher la mise en veille

#8

Message par mikell » jeu. 04 juil. 2019 13:41

DimVar a écrit :
jeu. 04 juil. 2019 13:14
Je 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)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 782
Enregistré le : ven. 30 mai 2008 14:08
Status : En ligne

Re: [..] Empecher la mise en veille

#9

Message par DimVar » jeu. 04 juil. 2019 14:00

Ben oui :oops: :roll:
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !

Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 782
Enregistré le : ven. 30 mai 2008 14:08
Status : En ligne

Re: [..] Empecher la mise en veille

#10

Message par DimVar » jeu. 04 juil. 2019 14:31

En effet, ca fait le taff !
Merci. :bisou:
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !

Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 1804
Enregistré le : mar. 22 juil. 2008 20:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Empecher la mise en veille

#11

Message par TommyDDR » jeu. 04 juil. 2019 22:13

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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2076
Enregistré le : lun. 30 mars 2009 21:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Empecher la mise en veille

#12

Message par jchd » jeu. 04 juil. 2019 23:14

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.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.

Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 782
Enregistré le : ven. 30 mai 2008 14:08
Status : En ligne

Re: [R] Empecher la mise en veille

#13

Message par DimVar » ven. 05 juil. 2019 11:07

@Tommy : Merci pour ce complément.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !

Répondre