2

所以我有一个 X 窗口(属于另一个进程),我想触发该窗口的调整大小事件,最好不实际调整它的大小。

我的第一种方法是只调整窗口大小两次,第二次回到原来的大小,但我失败了。问题是有问题的窗口是全屏显示的,显然调用XResizeWindowXMoveResizeWindow在这些窗口上没有任何作用(这在某种程度上是有道理的)。如果窗口不是全屏模式,它工作正常。
因为这只是为了快速测试,我开始想知道是否可以在 X 服务器中为该窗口伪造/注入调整大小事件。对于似乎很容易的 MS Windows,在谷歌搜索时找到了很多示例,但对于 X,我似乎不走运。

背景(无论如何人们可能会问;)):我正在全屏启动 VMware Player 实例,在某些情况下,在启动后,Windows 客户机不会根据主机更改其分辨率(但大多数情况下会这样做,谢谢到客户机上安装的 VMware Tools)。该虚拟机用于连接不同大小屏幕的多台机器上,因此我无法将图像预配置为具有正确的分辨率。目前,如果分辨率错误,用户会被告知退出并重新进入全屏,但这很不方便。所以我的想法是简单地告诉 VMplayer 它只是在启动后调整了大小,但也许有更好的方法......

4

1 回答 1

1

使用XSendEvent函数。它的存在正是出于这个原因。

于 2013-07-06T16:20:45.817 回答