3

我正在为 Linux 开发基于 Motif 的旧应用程序。我希望能够以编程方式更改我们应用程序的活动窗口。我可以使用 XSetInputFocus() 函数重定向输入并且键盘输入开始到那里,但是 XReconfigureWMWindow() 和 XRaiseWindow() 函数不起作用。

我读过窗口管理器试图阻止这种行为,所以试图禁用配置重定向,但这也不起作用。任何想法如何在窗口堆栈顶部制作我自己的窗口之一?

4

2 回答 2

2

有一个名为wmctrl的小程序可用(至少在 Debian/Ubuntu 中它是标准发行版),它能够在 Windows 和桌面上执行许多操作,并处理大量的窗口管理器。我建议测试它是否适用于您的环境,如果可以,请查看其来源。

于 2009-03-17T18:32:01.840 回答
0

您可能会发现这个问题的答案取决于用户正在使用的窗口管理器,甚至取决于他们为窗口管理器提供的设置。我喜欢将我的窗口管理器设置为“焦点跟随鼠标”,这意味着你不能将焦点发送到我没有把鼠标放在上面的窗口,除非你也在那里扭曲鼠标(那个函数叫做 XWarpMouse ?)。

于 2009-03-16T12:46:32.197 回答