Bonjour,

Je cherche à récupérer le nom de la fenêtre qui a actuellement le focus.
En Perl, avec la librairie X11 GUI Test, la fonction GetInputFocus permet de récupérer l'ID de la fenêtre qui a actuellement le focus. La fonction GetWindowName permet d'avoir le nom de la fenêtre à partir de son ID.
Le problème est qu'en combinant ces deux fonctions, j'obtiens l'identifiant mais je ne parviens pas à obtenir le nom associé à cet identifiant. Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$WinID = GetInputFocus();
print "Focussed window id : " . $WinID . "\n";
print "Focussed window name : " . GetWindowName($WinID) . "\n";
De plus, lorsque j'essaye de lister toutes les fenêtres, je ne retrouve pas l'ID de la fenêtre qui a le focus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
@wins = FindWindowLike('.*') or die("Didn't find any windows!");
print "FindWindowLike found " . @wins . " window(s).\n";
foreach my $win (@wins) {
	my $name = GetWindowName($win) || '[NO NAME]';
	print "\t" . $win. " ($name)";
}
J'ai essayé de faire la même chose en C mais j'ai le même problème avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Display *focusDisplay;
focusDisplay = XOpenDisplay(NULL);
int retcode = 0;
int param = 0;
retcode = XGetInputFocus(focusDisplay, &focusWindow, &param);
printf(stderr,"Focus Window = %u\n",focusWindow);
char* windName;
Status s = XGetWMName(focusDisplay, focusWindow, windName);
fprintf(stderr,"Name= %s - status : %d\n",windName, s);
Merci pour votre aide.