[英]C , Xlib, can't get the name of focussed window
這是我正在使用的代碼,
#include <stdio.h>
#include <X11/Xlib.h>
Display *dpy;
char *window_name_return = NULL;
Window focused;
int revert_to;
void main(){
dpy = XOpenDisplay(NULL) ;
if(!dpy) printf("error\n");
XGetInputFocus(dpy, &focused, &revert_to);
XFetchName(dpy, focused, &window_name_return);
XFree(window_name_return);
printf("Focus on %s\n", window_name_return);
XCloseDisplay(dpy);
}
這僅適用於終端仿真器 windows,對於其他 window,程序返回 null。 XFetchName
的文檔說,
如果尚未為此 window 設置 WM_NAME 屬性,則 XFetchName() 將 window_name_return 設置為 NULL
這就是它不起作用的原因嗎? 我使用 dwm window 管理器,在 Openbox 中運行代碼也不起作用。
如何更改代碼以使其適用於所有類型的 window?
您的代碼中有多個問題:
XFetchName
返回的狀態;window_name_return
是否為 null 的第二個;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.