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

目录
相关文章
|
3月前
关于代码的思考
关于代码的思考
8 0
|
4月前
|
前端开发 Java C++
一行代码就能完成的事情,为什么要写两行?
一行代码就能完成的事情,为什么要写两行?
|
10月前
|
算法
几行代码带来的巨大变化
几行代码带来的巨大变化
46 0
|
12月前
|
Java Python
长见识,让大家看看什么是垃圾代码
长见识,让大家看看什么是垃圾代码
79 0
|
前端开发
代码为什么越写越乱?
这个问题往大的说是业务治理问题,往小了说是代码分拆。且看作者怎么写出好代码。
106 0
|
存储 SQL 缓存
10行代码!
10行代码!
165 0
10行代码!
|
数据可视化 开发工具 git
如何给你的代码祝寿?
前段时间 alibaba/x-render 突破 3K Star,一直寻思着怎么给开源社区贡献的同学做一个小礼物来“祝寿”,然后就想到了之前玩过的 gource 和 avconv 这两个库(参数不熟悉可查文档,此外不多加解释),前者用于处理提交日志可视化,后者用于视频处理。
|
测试技术 UED 开发者
被劣质代码“残害”的这些年
都已经 2020 年了,但我们仍然在生产劣质软件。自从计算机诞生以来,已经过去了近 70 年,但我们似乎还没有吸取所有的教训,仍然在犯着重复的错误。