0 votes

Détecter le mouvement de la souris ou la frappe du clavier

Est-il possible de faire en sorte qu'un programme s'exécute lorsque la souris est déplacée ou qu'une touche est pressée ?

0 votes

Voulez-vous dire qu'une touche spécifique est enfoncée ou parlez-vous en général ?

0 votes

@Vic : Je veux dire n'importe quelle clé.

1voto

Vic Points 1820

Vous pouvez faire le contraire. Vous pouvez vérifier l'inactivité.

Il s'agit donc de ne rien faire tant que l'inactivité augmente...

#!/bin/sh

# Pause/Interval between checks
checkInt=5

# Keep track of the idle timer
lastIdle=0

while true ; do
   ioresp=`ioreg -w 0 -c IOHIDSystem | sed -e '/HIDIdleTime/ !{ d' -e 't' -e '}' -e 's/.* = //g' -e 'q'`
   idleNow=`echo $(( ${ioresp} / 1000000000 ))`

   re='^[0-9]+$'
   if ! [[ $idleNow =~ $re ]] ; then
      echo "error: ioreg did not return a number" >&2; exit 1
   fi

   echo "Idle now is $idleNow secs, was $lastIdle secs"

   # if idle decreased then action occurred so we do something...
   if [ $idleNow -lt $lastIdle ] ; then
      osascript -e 'tell application "System Events" to display dialog "Hello World"'
      lastIdle=0
   else
      lastIdle=$idleNow
   fi

   sleep $checkInt
done

C'est rudimentaire mais peut-être que cela fera l'affaire.... ! ?!

0 votes

"Peut-être que cela fera l'affaire.... ! ?!" me laisse penser que vous n'avez pas essayé la solution avant de poster, s'il vous plaît essayez les choses pour être sûr qu'elles fonctionnent avant de vous précipiter pour répondre.

1voto

Ady Points 4132

Si l'inactivité est une solution comme la réponse de Dude named Ben, sleepwatcher est plus facile à utiliser :

% sleep 3; sleepwatcher -g
30

Disponible dans MacPorts.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X