在linux中,获取窗口类引发“X失败请求错误:BadWindow(窗口参数无效)”

时间:2016-01-10 10:50:58

标签: c linux x11 xdotool

这是我的代码,我得到“X错误请求失败:BadWindow(窗口参数无效)”

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;
}

1 个答案:

答案 0 :(得分:2)

我找到解决方案,因为错误消息显示“(无效的Window参数)”,这意味着我应该首先获得窗口,在我的情况下62914561是google-chrome window id(我用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;
    }
}