在linux中,获得windowclass提高"X Error of failed request: BadWindow (invalid Window parameter)"

In linux, get window class raise "X Error of failed request: BadWindow (invalid Window parameter)"

这是我的代码,我得到 "X Error of failed request: BadWindow (invalid Window parameter)"

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

我找到了解决方案,如错误消息显示“(无效的Window参数)”,这意味着我应该首先得到window,在我的例子中62914561是google-chromewindow 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;
    }
}