2010-12-08 59 views
7

Comment puis-je placer le curseur de la souris dans une fenêtre X en C sous Linux avec multi-écrans? J'ai 2 moniteurs (avec une résolution différente) branchés à un seul PC Linux. J'ai utilisé ": 0.1" pour adresser le second moniteur. Je lance l'application depuis le moniteur 1 en gardant la souris sur le moniteur 1 ... comme résultat la souris se déplace mais ne saute pas sur le moniteur 2. Si je mets manuellement le curseur de la souris sur le moniteur 2 et lance l'application depuis le moniteur 1, la souris se déplace.Position du curseur de la souris en C sur le système multi-écrans

J'ai besoin d'un moyen de déplacer le curseur entre les moniteurs.

#include "Xlib.h" 
int main() { 
    int delta_x = 5, delta_y = 5; 
    Display *display = XOpenDisplay(":0.1"); 
    // move pointer relative to current position 
    XWarpPointer(display, None, None, 0, 0, 0, 0, delta_x, delta_y); 
    XCloseDisplay(display); 
} 

Répondre

4

Vous devez passer la poignée de la fenêtre racine de l'écran que vous voulez déplacer le pointeur à:

root = RootWindow(display, screennumber); 
    XWarpPointer(display, None, root, 0, 0, 0, 0, x, y); 

Il est un exemple de travail complet C ici:

http://www.ishiboo.com/~danny/Projects/xwarppointer/

qui peut être utile :)