作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用以下命令获取所有 X 窗口的名称:
Atom nameAtom = XInternAtom(dpy,"_NET_WM_NAME",false);
Atom type;
int format;
unsigned long nitems, after;
unsigned char *data = 0;
if (Success == XGetWindowProperty(dpy, window, nameAtom, 0, 65536,
false, XA_ATOM, &type, &format,
&nitems, &after, &data)) {
if (data) {
Atom windowName = *(Atom*)data;
const char* name = XGetAtomName(dpy, windowName);
log.debug("Name: %s", name);
XFree(data);
}
}
但在我的日志中,我只是为每个窗口获取 (null)
。我做错了什么?
最佳答案
所需的是将 req_type 相应地指定为 UTF8_STRING
:
Atom nameAtom = XInternAtom(dpy,"_NET_WM_NAME",false);
Atom utf8Atom = XInternAtom(dpy,"UTF8_STRING",false);
Atom type;
int format;
unsigned long nitems, after;
unsigned char *data = 0;
if (Success == XGetWindowProperty(dpy, window, nameAtom, 0, 65536,
false, utf8Atom, &type, &format,
&nitems, &after, &data)) {
if (data) {
log.debug("Name: %s", data);
XFree(data);
}
}
关于c++ - 为什么 XGetWindowProperty 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8925377/
我正在使用以下代码从根窗口读取 _NET_ACTIVE_WINDOW 原子: Atom actualType; int actualFormat; unsigned long nItems, byte
我在阅读某些 XWindow ICCCM 属性时遇到问题。 问题实际上是当我尝试读取 _NET_WM_STATUS 属性时。 我正在使用的功能是: int get_property_value(Dis
我正在使用以下命令获取所有 X 窗口的名称: Atom nameAtom = XInternAtom(dpy,"_NET_WM_NAME",false); Atom type; int f
我想在 C 中使用 Xlib 获取所有打开的窗口标题的列表。我正在运行 Ubuntu 12.04。我正在使用以下代码来完成此操作: #include #include #include #inc
我是一名优秀的程序员,十分优秀!