PDA

Afficher la version complète : [Réglé] affich la pos de la souris & ref fenetre ?



mortelRDV
20/09/2005, 10h55
Bonjour,

je cherche un programme/une commande qui affiche la position de la souris sur l'écran & un autre qui affiche le code (et position) d'une fenetre.

avez vous une idée ?

on m'a dit de voir du coté de xev :
<div class='quotetop'>Citation </div>
MotionNotify event, serial 26, synthetic NO, window 0x1a00001,
root 0x40, subw 0x0, time 93000387, (54,110), root:(200,181),
state 0x110, is_hint 0, same_screen YES[/b]

mais c'est pas ce que je veux, car xev ouvre une fenetre A puis affiche le code de cette fenetre A seulement ainsi que la position de la souris en temps réelle mais seulement quand celle ci est dans cette fenetre A.

merci

PS : le but de l'histoire est d'obtenir des valeurs afin de fournir en parametre un script.

galagann
20/09/2005, 11h11
Salux,

Je pense que ce programme le fait : http://members.tripod.com/so_o2/xcoor.html
Je dis bien "je pense", car il site est mal fait http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

mortelRDV
22/09/2005, 17h56
ça se pourrait, merci.
Mais pour l'instant j'ai contourné le probleme.

Je garde en mémoire pour un future besoin.

galagann
22/09/2005, 22h47
J'espère que cela te sera utile http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

PS: Tu es à 100 Messages http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

mortelRDV
23/09/2005, 11h58
Pour ceux qui chercheraient la même chose que moi :

Affiche le code (et position) d'une fenetre : xwininfo (fournit dans la distrib)

Affiche la position de la souris sur l'écran en temps reelle : http://members.tripod.com/so_o2/xcoor.html (il affiche l'info dans une fenetre, xcoop est fournit en fichier binaire executable sans source)

Deplace la souris, utiliser les boutons de la souris : http://hocwp.free.fr/movemouse.html (je l'ai modifié pour afficher la position de la souris, util pour des scripts bash dans mon cas)
remplacer le contenu de mvmouse.c par :
<div class='quotetop'>Citation </div>
/************************************************** *************************
mouse - a simple program to move mouse on screen
Azundris <hacks@azundris.com>
inspired by movemouse by Philippe Brochard <hocwp@free.fr>
************************************************** *************************/

/************************************************** *************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
************************************************** *************************/

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <X11/Xlib.h>
#include <X11/extensions/XTest.h>

char *me=NULL;

static void usage(void) {
fprintf(stderr, "Usage : %s [-display <display>] <x> <y> [<button>]\n",me);
fprintf(stderr, "If x and y are signed, the pointer is moved from its current position by\n"
"x and y, otherwise, it is moved to x, y. Either both or neither x, y should\n"
"be signed. <button> denotes the index of a button to press, 0 for none.\n");
fprintf(stderr, "\nexample : mvmouse -display :1 300 500 0 move the mouse on localhost:1\n"
" mvmouse 300 200 1 move the mouse on localhost:0 (DEFAULT) and click on the left button\n"
" mvmouse --help display this info\n"
" mvmouse show the current position of the pointer\n");
exit(1); }

int main(int argc, char **argv) {
Display *dpy;
Window root;
char *display="";
int i,j=0;
int r=0;
#define MAXMOUSE 3
int md[MAXMOUSE]={ 0, 0, 0};

int pointer_x[1],pointer_y[1];
Window NULL_B[1];
unsigned int NULL_A[1];

me=argv[0];


if (argc>1) {
for(i=1;i<argc;i++) {
if(!strcmp(argv[i],"-display")||!strcmp(argv[i],"--display")) {
if(i<(argc-1))
display=argv[++i];
else
usage(); }
else {
int v;
char *p=argv[i];

if(*p=='+'||*p=='-') {
r++; }

if(!(v=atoi(p))) {
p++;
while(*p&&isdigit(*p))
p++;
if(*p)
usage(); }

md[j]=v;
if((++j>MAXMOUSE)||((j==2)&&(r==1)))
usage(); }}

if((j<2)||md[2]<0)
usage();
}

if(!(dpy=XOpenDisplay(display))) {
fprintf(stderr, "Can not open display \"%s\"...\n",display);
exit(1); }

root=DefaultRootWindow(dpy);XQueryPointer( dpy, (r?None:root), NULL_B, NULL_B, pointer_x, pointer_y, NULL_A, NULL_A, NULL_A);
printf("%s mouse is %d,%d \n", (argv[1]?"Before":"Current"),*pointer_x,*pointer_y);


if (argc>1) {
printf("Move mouse %s %d,%d (buttons %d)%s%s\n",
(r?"by":"to"),
md[0],md[1],md[2],
strlen(display)?" on display ":"",
display);


XWarpPointer(dpy,None,(r?None:root),None,None,None ,None,md[0],md[1]);

if(md[2]) {
XTestFakeButtonEvent(dpy,md[2],True, 0);
XTestFakeButtonEvent(dpy,md[2],False,300); }

XCloseDisplay(dpy);
}

return 0; }

/* ends */[/b]