x11获得窗口名的代码

简介: x11获得窗口名的代码

具体代码:

/**
_NET_WM_NAME: 类似Window: 126
WM_NAME: XStoreName设置的值
*/
bool get_window_name(Display* dpy, Window window, char* pName)
{
#if 1
char **srname = (char **)malloc(sizeof(char *));
XFetchName(dpy, window, srname);
printf("%s-%d %s\n", __func__, __LINE__, srname[0]);
#else
    //尝试使用_NET_WM_NAME方式获取窗口的名称
    XTextProperty tp;
    Status s1 = XGetTextProperty(dpy,window,&tp,XInternAtom(dpy, 
        "WM_NAME",
        False));
    if (tp.nitems <= 0)
    {
        return false;
    }
    int count = 0;
    char **list = NULL;
    int ret = XmbTextPropertyToTextList(dpy, &tp, &list, &count);
    if ((ret == Success || ret > 0) && list != NULL)
    {
        for (int i=0; i<count; i++)
        {
             sprintf(pName, "%s", list[i]);
        }
        XFreeStringList(list);
    }
    else
    {
        sprintf(pName, "%s", tp.value);
    }
#endif
    return true;
}

目录
打赏
0
0
0
0
17
分享
相关文章
|
8月前
|
C/C++爱心代码
C/C++爱心代码
2555 2
几行代码带来的巨大变化
几行代码带来的巨大变化
78 0
一行代码就能完成的事情,为什么要写两行?
一行代码就能完成的事情,为什么要写两行?
不要傻乎乎的去找不同了,一起来用代码完成“找不同”游戏吧
不要傻乎乎的去找不同了,一起来用代码完成“找不同”游戏吧
678 0
不要傻乎乎的去找不同了,一起来用代码完成“找不同”游戏吧
x11获得窗口名的代码
x11获得窗口名的代码
185 0
如何给你的代码祝寿?
前段时间 alibaba/x-render 突破 3K Star,一直寻思着怎么给开源社区贡献的同学做一个小礼物来“祝寿”,然后就想到了之前玩过的 gource 和 avconv 这两个库(参数不熟悉可查文档,此外不多加解释),前者用于处理提交日志可视化,后者用于视频处理。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等