Page 1 sur 1
[R] Script MouseClick + GUI ( Cadre professionnel )
Posté : jeu. 15 oct. 2009 21:23
par Grimmy
Bonjour à tous.
Pour l'utilisation en cadre professionnel, j'aurais besoin, afin d'éviter le fatidique "Ctrl+Alt+Suppr" des windows entreprise au bout d'un certains temps d'inactivité, un script plutôt simple mettant en œuvre le clic gauche de la souris ou au choix le déplacement aléatoire de celle-ci, se répétant indéfiniment toutes les X secondes ( donc avec un input ou je rentre le nombre de seconde que je veux ). Avec si possible un bouton permettant la "Marche/Arrêt" du script.
Ceci dans un GUI simple dont voici un modèle que j'ai fait :
► Afficher le texte
Code : Tout sélectionner
#include <GuiConstantsEx.au3>
; GUI
GuiCreate("Simulateur de souris", 250, 180)
; GROUP WITH RADIO BUTTONS
GuiCtrlCreateGroup("Actions de la souris", 10, 10)
GuiCtrlCreateRadio("Mouvement aléatoire", 15, 30, 160)
GuiCtrlSetState(-1, $GUI_CHECKED)
GuiCtrlCreateRadio("Clic", 15, 50, 160)
GUICtrlCreateGroup ("Actions de la souris",-10,-10,1,1) ;close group
; UPDOWN
GuiCtrlCreateLabel("Toutes les", 15, 85)
GuiCtrlCreateInput("419", 75, 80, 50, 20)
GuiCtrlCreateUpDown(-1)
GuiCtrlCreateLabel("secondes", 130,85)
GuiCtrlCreateButton("", 10, 130, 100, 30)
; GUI MESSAGE LOOP
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Je vais peut être en demander beaucoup, mais si vous pouviez commenter le code afin que je puisse comprendre la démarche, et pouvoir ainsi avancer dans le langage Autoit !
En vous remerciant à l'avance pour le temps passé sur mon "cas".
Cordialement.
Re: [..] Script MouseClick + GUI ( Cadre professionnel )
Posté : jeu. 15 oct. 2009 21:48
par orax
Ca ne peut pas se solutionner simplement en bidouillant les options de windows ? Par exemple, dans "Propriétés de Affichage->A la reprise, afficher l'écran d'accueil" ? ou un truc du genre ?
Re: [..] Script MouseClick + GUI ( Cadre professionnel )
Posté : jeu. 15 oct. 2009 21:56
par Grimmy
Je pense qu'on doit pouvoir y arriver comme ça, mais je voudrais passer par cette solution.
Ainsi je pourrais l'adapter pour plusieurs programmes.
Et en plus cela m'intéresserais vraiment de voir le code correspondant !
Re: [..] Script MouseClick + GUI ( Cadre professionnel )
Posté : jeu. 15 oct. 2009 23:00
par Tlem
Je pense qu'on ne peut pas faire plus simple et commenté :
► Afficher le texte
Code : Tout sélectionner
#Include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode",1) ; Change le mode d'affichage du menu tray
Global $Tempo = 120 ; 2 Min
AdlibEnable("BougeSouris", $Tempo * 1000) ; Active la fonction 'BougeSouris' par rapport à la temporisation
; Début de création du menu Tray
$MenuEtat = TrayCreateMenu("Etat") ; Menu Etat
$On = TrayCreateItem("On", $MenuEtat, 1, 1) ; Elément On (Style Radio)
TrayItemSetState(-1, $TRAY_CHECKED) ; On coche l'élément précédent
$Off = TrayCreateItem("Off", $MenuEtat, 2, 1) ; Elément Of (Style Radio)
TrayCreateItem("") ; Ligne vide
$MenuTempo = TrayCreateMenu("Temporisation") ; Menu Temporisation
$120 = TrayCreateItem("120s", $MenuTempo, 1, 1) ; 120 secondes (2mn) (Style Radio)
TrayItemSetState(-1, $TRAY_CHECKED) ; On coche l'élément précédent
$240 = TrayCreateItem("240s", $MenuTempo, 2, 1) ; 240 Secondes (4Mn) (Style Radio)
$360 = TrayCreateItem("360s", $MenuTempo, 3, 1) ; 360 secondes (6mn) (Style Radio)
$480 = TrayCreateItem("480s", $MenuTempo, 4, 1) ; 480 secondes (8mn) (Style Radio)
$600 = TrayCreateItem("600s", $MenuTempo, 5, 1) ; 600 secondes (10mn) (Style Radio)
TrayCreateItem("") ; Ligne vide
$Sortie = TrayCreateItem("Sortie") ; Elément Sortie
TraySetState() ; Activation de l'affichage du menu Tray
TraySetIcon("Shell32.dll",-100) ; Modification de l'icone Tray
TraySetToolTip("Utilitaire anti-écran de veille") ; Message de la bulle d'info
While 1 ; Début de la boucle infinie
$msg = TrayGetMsg() ; On récupère les événements
Switch $msg ; On 'Switch' sur l'élément 'capté' par $msg
Case $On ; Si $msg = $On (clic sur On)
AdlibEnable("BougeSouris", $Tempo*1000) ; Active la fonction 'BougeSouris' par rapport à la temporisation
Case $Off ; Si $msg = $Off (clic sur Off)
AdlibDisable() ; On désactive la fonction AdlibEnable
Case $Sortie ; Si $msg = $Sortie (clic sur Sortie)
ExitLoop ; On sort de la boucle infinie
Case $120, $240, $360, $480, $600 ; Si $msg est égal aux différentes variables de temporisation
If $msg = $120 Then $Tempo = 120 ; Si $msg = $120 (clic sur 120) alors $Tempo = 120
If $msg = $240 Then $Tempo = 240 ; Voir ci-dessus
If $msg = $360 Then $Tempo = 360 ; Voir ci-dessus
If $msg = $480 Then $Tempo = 480 ; Voir ci-dessus
If $msg = $600 Then $Tempo = 600 ; Voir ci-dessus
EndSwitch ; Fin de la sélection Switch
WEnd ; Fin de la boucle infinie (renvoi à While)
Exit ; Sortie du Script.
Func BougeSouris() ; La fonction qui fait bouger la souris
Local $Y = @DesktopHeight/2 ; on récupère le milieu de la hauteur.
Local $X = @DesktopWidth/2 ; on récupère le milieu de la largeur.
Local $InitPos ; On initialise la variable
Local $Speed = 8 ; On initialise la variable à 8
$InitPos = MouseGetPos() ; On récupère la position de la souris
MouseMove($X, $Y, $Speed) ; On bouge la souris au milieu de l'écran
MouseMove($InitPos[0], $InitPos[1], $Speed) ; On replace la souris à son point de départ
EndFunc ; Fin de la fonction
[R] Script MouseClick + GUI ( Cadre professionnel )
Posté : ven. 16 oct. 2009 00:15
par Grimmy
Un énorme Merci.
Les commentaires sont parfaitement clairs et m'ont beaucoup aidés. La réponse, très rapide, que demander de plus.
Au plaisir.
Cordialement.
Edit : [R]