1
我试图用ID从关闭应用程序的窗口使用Xlib。在使用wmctrl的源代码作为指导,下面是一个我认为应该达到的最小C程序,其窗口ID被指定为argv[1]
。用Xlib关闭应用程序窗口
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
int main (int argc, char *argv[]) {
Display *disp;
unsigned long wid;
XEvent event;
disp = XOpenDisplay(NULL);
sscanf(argv[1], "0x%lx", &wid);
long mask = SubstructureRedirectMask | SubstructureNotifyMask;
event.xclient.type = ClientMessage;
event.xclient.serial = 0;
event.xclient.send_event = True;
event.xclient.message_type = XInternAtom(disp, "_NET_CLOSE_WINDOW", False);
event.xclient.window = (Window)wid;
event.xclient.format = 32;
event.xclient.data.l[0] = 0;
event.xclient.data.l[1] = 0;
event.xclient.data.l[2] = 0;
event.xclient.data.l[3] = 0;
event.xclient.data.l[4] = 0;
XSendEvent(disp, DefaultRootWindow(disp), False, mask, &event);
}
我不确定我不理解/缺少达到此目的。