Bonjour à tous,
Je suis à la recherche d'un script qui me permettrait de lancer ou arrêter un programme en fonction de "l'activité" de la souris.
Pour essayer d'être plus clair :
J'ai un programme qui se lance automatiquement au démarrage de Windows et je souhaiterais que :
- si un utilisateur "touche" la souris le programme se ferme automatiquement
- au bout de x secondes d'inactivité au niveau de la souris le programme se lance de nouveau
Je vous remercie par avance de votre aide.
[R] Arrêt/Lancement soft sur détection mouvement souris
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Arrêt/Lancement soft sur détection mouvement souris
Modifié en dernier par freemykl le jeu. 14 oct. 2010 14:15, modifié 1 fois.
- Jerome
- Niveau 9

- Messages : 661
- Enregistré le : mar. 07 avr. 2009 08:35
- Localisation : Picardie
- Status : Hors ligne
Re: [..] Arrêt/Lancement soft sur détection mouvement souris
Coucou,
Pour ce qui est de la souris qui bouge ou pas, vous pouvez controler les coordonées de la souris.
Avec la fonction MouseGetPos, vous rentrer dans une premiere variable, et faite une boucle qui dit que si cette variable est différente d'une nouvelle variable MouseGetPos, vous sortez de la boucle, et killer le processus de votre application.
Pour la relancer, effectuer un timer et lorsqu'il est remplit, on relance l'appli, chercher un peu sur le forum, tout s'y trouve.
Je vous ai donnée les point clé de votre script. Si d'autre question, n'hésitez pas.
Pour ce qui est de la souris qui bouge ou pas, vous pouvez controler les coordonées de la souris.
Avec la fonction MouseGetPos, vous rentrer dans une premiere variable, et faite une boucle qui dit que si cette variable est différente d'une nouvelle variable MouseGetPos, vous sortez de la boucle, et killer le processus de votre application.
Pour la relancer, effectuer un timer et lorsqu'il est remplit, on relance l'appli, chercher un peu sur le forum, tout s'y trouve.
Je vous ai donnée les point clé de votre script. Si d'autre question, n'hésitez pas.
Re: [..] Arrêt/Lancement soft sur détection mouvement souris
Merci de ton aide!
Sur tes indications j'ai commencé le code ci-dessous :
Mais il y a un problème : sans toucher la souris "notepad" se ferme.
Soit j'ai fait une erreur dans mon code ou soit la souris bouge en permanence (mais pas de façon "visible" à l'écran).
Sur tes indications j'ai commencé le code ci-dessous :
Code : Tout sélectionner
While 1
Global $positionSouris1 = MouseGetPos()
Global $positionSouris2 = MouseGetPos()
If $positionSouris1 <> $positionSouris2 Then
ProcessClose ( "notepad.exe")
EndIf
Sleep(1000)
WEndSoit j'ai fait une erreur dans mon code ou soit la souris bouge en permanence (mais pas de façon "visible" à l'écran).
Modifié en dernier par Yogui le jeu. 14 oct. 2010 10:44, modifié 1 fois.
Raison : suppression colorisation
Raison : suppression colorisation
Re: [..] Arrêt/Lancement soft sur détection mouvement souris
Bonjour
Premier point merci de ne pas utiliser la coloration du syntaxique Autoit qui est réservé aux exemples.
Vous avez mal lu l'aide de la fonction MouseGetPos !
Elle ne renvoie pas une valeur mais un tableau votre code ne peux pas fonctionner
Un code qui doit pouvoir fonctionner en cas de problème de compréhension j'ai mis un max de commentaire et d'information dans la console
Premier point merci de ne pas utiliser la coloration du syntaxique Autoit qui est réservé aux exemples.
Vous avez mal lu l'aide de la fonction MouseGetPos !
Elle ne renvoie pas une valeur mais un tableau votre code ne peux pas fonctionner
Un code qui doit pouvoir fonctionner en cas de problème de compréhension j'ai mis un max de commentaire et d'information dans la console
Code : Tout sélectionner
#Region Variables
Global $Positiondepart
Global $positionmaintenant
Global $Compteur
Global $Tempsinacti
#EndRegion Variables
#Region initialisation des variables
$Positiondepart = MouseGetPos()
$Tempsinacti = 10 ; !
$Compteur = 0
ConsoleWrite("Position de départ : " & $Positiondepart[0] & $Positiondepart[1] & @CRLF) ;affichage pour debug
#EndRegion initialisation des variables
While 1
Global $positionmaintenant = MouseGetPos() ;récupération de la position de la souris
ConsoleWrite("Position maintenant : " & $positionmaintenant[0] & $positionmaintenant[1] & @CRLF);affichage pour debug
If $Positiondepart[0] & $Positiondepart[1] <> $positionmaintenant[0] & $positionmaintenant[1] Then ;comparaison de la concaténation des deux valeurs du tableau
_sourisabouge() ;appel de la fonction
$Positiondepart = MouseGetPos() ;prise en compte de la nouvelle valeur de départ
EndIf
Sleep(1000);attente
$Compteur += 1
ConsoleWrite("temps d'inactivité : " & $Compteur & @CRLF);affichage pour debug
If $Compteur = $Tempsinacti Then ;compteur = temps d'inactivité je relance le notepad
Run("notepad.exe")
EndIf
WEnd
Func _sourisabouge()
ConsoleWrite("la souris bouge je ferme notepad" & @CRLF);affichage pour debug
ProcessClose("notepad.exe")
$Compteur = 0 ;si la souris bouge je repart à 0
EndFunc ;==>_sourisabouge
Modifié en dernier par Yogui le jeu. 14 oct. 2010 11:30, modifié 2 fois.
Raison : Ajout de commentaires dans le code
Raison : Ajout de commentaires dans le code
- Jerome
- Niveau 9

- Messages : 661
- Enregistré le : mar. 07 avr. 2009 08:35
- Localisation : Picardie
- Status : Hors ligne
Re: [..] Arrêt/Lancement soft sur détection mouvement souris
Coucou,
Perso j'ai un truc comme sa qui fonctionne :
Jérôme
Perso j'ai un truc comme sa qui fonctionne :
Code : Tout sélectionner
Global $timer, $test
While 1
$timer = TimerInit()
$test = 0
Do
bouger()
sleep(100)
If TimerDiff($timer) > 4000 Then
Run("ton programme (chemin complet)")
EndIf
Until $test = 1
Wend
Func bouger()
$init = MouseGetPos()
If ProcessExists("ton process") Then ProcessClose("ton process")
Do
sleep(100)
$bouger = MouseGetPos()
Until(($init[0] <> $bouger[0]) Or ($init[1] <> $bouger[1]) or TimerDiff($timer) > 4000)
$test = 1
EndFuncJérôme
Re: [..] Arrêt/Lancement soft sur détection mouvement souris
Super, merci à tous les deux, ça fonctionne.
Désolé pour le code en couleur.
Désolé pour le code en couleur.

