在GTK中查找一个进程的所有打开的窗口

问题描述:

GTK中是否有通过特定进程打开所有当前窗口的方法?理想情况下,我希望能够获得GtkWindow实例。我知道的Java AWT有这样的:在GTK中查找一个进程的所有打开的窗口

java.awt.Window[] windows = java.awt.Window.getWindows(); 

而微软的UI自动化也有办法让所有窗口的应用程序。无论如何要用GTK来做到这一点?

我找到了一个函数gtk_window_list_toplevels,但它似乎返回了太多的窗口。应用程序gedit在我的电脑上有30个*窗口。对于具有一个窗口的应用程序来说,这似乎太多了。

gtk_window_list_toplevels()仅为您提供流程中的窗口,但包含隐藏的窗口。因此,如果您列出像Gedit这样的应用程序的*窗口,您可能会获得大量隐藏的首选项窗口,搜索对话框以及许多与许多插件相关的其他窗口。首先尝试一下你自己编写的一个简单的单窗口应用程序,然后你会发现它只返回主窗口。

+0

我对它进行了更多的研究,并且确实如此,我会更新这个问题。 – 2011-03-15 13:55:22

+0

我会更新答案。 ;-) – ptomato 2011-03-15 16:20:14

+0

这就是我所需要的;)获取窗口并检查它们是否当前可见解决了我最初的问题。 – 2011-03-15 21:07:39