我正在使用XLIB和gtk编写一个程序,我应该实现一个函数来切换一个特定的窗口(使用任何人类可识别的引用,窗口名称,进程名称或每次该应用程序将是静态的任何东西运行)
我完全迷失了,在申请开始时我找不到任何指导我的东西
感谢
答案 0 :(得分:1)
您可以使用X库执行此操作,但这有点痛苦:您必须了解X IPC和属性。幸运的是,假设您可以使用其他库,那么这是一种更简单的方法:使用Libwnck。这是列出窗口的最小示例(改编自"入门"页面):
WnckScreen *screen = wnck_screen_get_default ();
WnckWindow *active_window = wnck_screen_get_active_window (screen);
GList *l;
for (l = wnck_screen_get_windows (screen); l != NULL; l = window_l->next) {
WnckWindow *window = WNCK_WINDOW (window_l->data);
g_print ("%s%s\n", wnck_window_get_name (window),
window == active_window ? " (active)" : "");
}
切换到特定窗口应该只是:
wnck_window_activate (window, 0);
唯一的问题是wnck设计用于GLib主循环。如果您没有运行(如简单命令行应用程序的情况),您需要使用wnck_screen_force_update ()
从X获取当前数据(请参阅"入门&# 34;例子)。