2016-01-10 2 views
-1

вот мой код, я получаю «X Ошибку невыполненного запроса: BadWindow (недействительный параметр Window)»В Linux, получить окно класса поднять «X Ошибку невыполненного запроса: BadWindow (недопустимый параметр Window)»

xdo_t *xdo = xdo_new(":0"); 
XWindowAttributes attr; 
XClassHint classhint; 
Window window; 
XGetWindowAttributes(xdo->xdpy, window, &attr); 
if (XGetClassHint(xdo->xdpy, window, &classhint)) { 
    classhint.res_name; 
} 

ответ

2

Я нашел решение, поскольку сообщение об ошибке показывает «(недопустимый параметр окна)», это означает, что я должен сначала получить окно, в моем случае 62914561 - это идентификатор окна google-chrome (я получаю его с xdotool search google-chrome), следующий код должен работать

#include <X11/Xutil.h> 
#include <xdo.h> 

int main(int argc, char **argv) { 
    Display *display = XOpenDisplay(NULL); 
    XWindowAttributes attr; 
    XClassHint classhint; 
    Window window = 62914561; 
    XGetWindowAttributes(display, window, &attr); 

    if (XGetClassHint(display, window, &classhint)) { 
     classhint.res_name; 
    } 
}