如何以编程方式隐藏与桌面和 Unity 启动器和面板相关的窗口?

如何以编程方式隐藏与桌面和 Unity 启动器和面板相关的窗口?

我正在使用 Mono 4.4.0 开发 WindowsForms Kiosk 应用程序,并且我希望在启动应用程序时不显示任何与桌面相关的内容。也就是说,当我隐藏我的一个应用程序表单并显示另一个时,我希望看到完全黑色、不可点击的屏幕。应用程序需要在 Ubuntu 14.04 LTS x64 下运行。

我能够使用 将桌面和 Unity 启动器窗口移离 0,0 屏幕点wmctrl。即对每个需要隐藏的窗口执行以下命令:wmctrl -i -r 0x0300000a -e 0,2000,2000,0,0。在此示例中0x0300000a是桌面窗口 ID,我从wmctrl -l命令输出中获取了它。但是,尽管窗口被移动了,但它们并没有被完全隐藏。它们变得不可点击,并且不会重新渲染,但仍在初始位置可见。

A 还尝试使用以下命令关闭桌面窗口:wmctrl -i -c 0x0300000a。但是在关闭桌面窗口后,注销正在发生。调整大小命令wmctrl对桌面和 Unity 窗口无效。xdotool对我来说也不起作用。我尝试了windowminimizewindowunmap命令,但没有结果。

我知道在 Windows 上您可以使用FindWindowuser32.dll 调用找到桌面窗口并发出信号让此窗口隐藏。

在 Ubuntu 14.04 中有什么方法可以做到这一点吗?

相关内容