微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何创build一个在所有其他窗口之上的X窗口/客户端,而不是在WM控制之下,并且没有input? 覆盖,OSD

我想编写应用程序(或使用现有的应用程序,这将更加方便),其行为像一个硬件屏幕OSD(在屏幕上显示),只有没有input。

也就是说:一个graphics输出(例如像Qt或者Gtk这样的GUI工具包)被放置在一个甚至全屏的窗口上,比如Firefox F11模式或全屏模式的video播放器。 也包括鼠标光标的“上方”,因此在技术上和graphics上,鼠标光标将移动到该小部件的下面。 我不知道使用SDL或OpenGL的真正的全屏应用程序,但这不是要求。 如果你知道这一点,请把它包括在你的答案中。

真实世界的应用程序是只读覆盖像一个小networking摄像头窗口,电视台像徽标或预制的注释。 因此,总而言之,这是用于现场演示,stream媒体和录制截屏video和教程,最less的后期处理。

我自己的黑客,不成功的实验表明,至less从WM控件中删除这个窗口(我通过select一个GTKpopup对话框而不是一个真正的主窗口),可以让你以绝对坐标进行定位,并且会忽略虚拟桌面和工作区,这是很好的,所以你可以切换这些和覆盖/ HUD将留在原地。

是否有可能在桌面上检测外部应用程序的窗口移动?

如何在纹理上的三维空间显示一个窗口/ X窗口系统窗口?

我怎么能创build窗口站和Windows桌面使用C#

保存文件到桌面 – 可行性?

Windows桌面应用程序转换器问“你想如何打开这个文件”(.sp1)

当然这不能在软件中使用与硬件屏幕相同的Z值(顶部/底部窗口)来完成。 所以在技术上我说的是高于所有其他窗口,但低于屏幕保护程序或锁屏层。

+1互联网链接到文档,并提供正确的关键字。

+2互联网的工作代码示例,语言,gui工具包等无所谓。

Linux Lightweight distro和X Windows开发

通过应用程序解锁一个Win7桌面

在Windows桌面上创build一个快捷方式图标

Github的Windows 8无法克隆回购

如何编写Windows应用程序来更改桌面壁纸?

您可能需要Composite复合扩展的复合叠加窗口 – 请参阅第3.2节“复合叠加窗口”扩展文档。 (光标在此窗口上方)

该协议的0.3版本添加了复合叠加窗口,该复合叠加窗口为合成管理器提供了一个无干扰绘制的表面。 此窗口始终在正常窗口之上,并始终位于屏幕保护程序窗口的下方。 它是一个InputOutput窗口,其宽度和高度是屏幕尺寸。 它的视觉是根视觉,它的边界宽度是零。 尝试使用复合扩展名重定向它将被忽略。 该窗口不会出现在QueryTree请求的回复中。 这也是覆盖重定向窗口。 最后两个功能使窗口管理员和其他X11客户端不可见。 访问此窗口的XID的唯一方法是通过CompositeGetoverlayWindow请求。 最初,复合叠加窗口未映射。

使用node-x11的示例:

var x11 = require('x11'); x11.createClient(function(err,display) { var X = display.client; var root = display.screen[0].root; X.require('composite',function(err,Composite) { Composite.GetoverlayWindow(root,overlay) { // already automatically mapped here: // // CompositeGetoverlayWindow returns the XID of the Composite Overlay // Window. If the window has not yet been mapped,it is mapped by this // request. When all clients who have called this request have terminated // their X11 connections the window is unmapped. }); }); });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐