我想编写应用程序(或使用现有的应用程序,这将更加方便),其行为像一个硬件屏幕OSD(在屏幕上显示),只有没有input。
也就是说:一个graphics输出(例如像Qt或者Gtk这样的GUI工具包)被放置在一个甚至全屏的窗口上,比如Firefox F11模式或全屏模式的video播放器。 也包括鼠标光标的“上方”,因此在技术上和graphics上,鼠标光标将移动到该小部件的下面。 我不知道使用SDL或OpenGL的真正的全屏应用程序,但这不是要求。 如果你知道这一点,请把它包括在你的答案中。
真实世界的应用程序是只读覆盖像一个小networking摄像头窗口,电视台像徽标或预制的注释。 因此,总而言之,这是用于现场演示,stream媒体和录制截屏video和教程,最less的后期处理。
我自己的黑客,不成功的实验表明,至less从WM控件中删除这个窗口(我通过select一个GTKpopup对话框而不是一个真正的主窗口),可以让你以绝对坐标进行定位,并且会忽略虚拟桌面和工作区,这是很好的,所以你可以切换这些和覆盖/ HUD将留在原地。
是否有可能在桌面上检测外部应用程序的窗口移动?
我怎么能创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] 举报,一经查实,本站将立刻删除。