切换到特定窗口

时间:2015-12-07 20:16:03

标签: c gtk xlib

我正在使用XLIB和gtk编写一个程序,我应该实现一个函数来切换一个特定的窗口(使用任何人类可识别的引用,窗口名称,进程名称或每次该应用程序将是静态的任何东西运行)

我完全迷失了,在申请开始时我找不到任何指导我的东西

感谢

1 个答案:

答案 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;例子)。

相关问题