2017-07-14 1 views
1

Je sais que je peux obtenir l'emplacement actuel du curseur de la souris en exécutant "xdotool getmouselocation".La façon de détecter le type de curseur de souris actuel à partir de bash ou python

Je souhaite détecter le type de curseur de la souris tel que le pointeur, le rayon ou le curseur de la main à partir du terminal bash ou du code python. Serait-ce possible?

Merci. June

+0

Quel système d'exploitation utilisez-vous? – Nelson

+0

Si vous voulez dire quel est l'état dans lequel se trouve le curseur (les différents curseurs qui s'affichent lorsque vous survolez une zone de texte ou un lien ou le bureau), je pense qu'il serait préférable d'expliquer pourquoi. Je pourrais offrir une meilleure alternative. – Nelson

+0

@Nelson J'utilise Xubuntu 17.04. – user1350338

Répondre

0

Vous pouvez utiliser xdotool pour cliquer en continu sur l'emplacement du lien jusqu'à ce que le programme remarque que le titre de la fenêtre change. Lorsque le titre de la fenêtre change, cela signifie que le lien a été cliqué et que la nouvelle page est en cours de chargement.

fonction Clicking:

ff_window=$(xdotool search --all --onlyvisible --pid "$(pgrep firefox)" --name ".+") 

click-at-coords() { 
    title_before=$(xdotool getwindowname $ff_window) 
    while true; do 
     sleep 1 
     title_now=$(xdotool getwindowname $ff_window) 
     if [[ $title_now != $title_before]]; then 
      break 
     else 
      xdotool windowfocus --sync "$ff_window" mousemove --sync "$1" "$2" click 1 
     fi 
    done 
} 

En supposant que vous utilisez xdotool de cliquer à l'aide de coordonnées:

# replace each x and y with the coordinates of each link 
# example with 2 sets of coordinates: all_coords=("67 129" "811 364") 
all_coords=("x y" "x y") 

for sub in "${all_coords[@]}"; do 
    coords=($sub) 
    click-at-coords "${coords[@]}" 
done