首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

X11: XQueryPointer给了我模糊的窗口

XQueryPointer函数在某些情况下可能会返回模糊的窗口信息,这通常是因为X窗口系统中的窗口管理器或桌面环境对鼠标焦点窗口进行了特殊处理

要解决这个问题,您可以尝试以下方法:

  1. 使用XGetInputFocus函数来获取当前具有输入焦点的窗口,而不是使用XQueryPointer。示例代码如下:
代码语言:javascript
复制
Window focused_window;
int revert_to;
XGetInputFocus(display, &focused_window, &revert_to);
  1. 尝试在查询鼠标指针位置之前,延迟一段时间,以确保窗口管理器已经处理了所有最近的事件。您可以使用usleep函数实现延迟:
代码语言:javascript
复制
#include <unistd.h>
//...
usleep(100000); // 延迟100毫秒
  1. 如果上述方法仍然无法解决问题,您可以尝试使用Xlib扩展,如XInput2,它提供了更精确的输入设备信息和事件处理。请注意,这需要额外的配置和编程工作来使用XInput2扩展。
  2. 如果您使用的是GNOME桌面环境,您可以尝试使用libwnck库来获取当前活动窗口的信息,该库为窗口管理器提供了更高级的抽象。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet 如何从 Gtk 3 的窗口到对应的 X11 窗口

本文将告诉大家如何在 Gtk3 的 Gtk.Window 或 Gdk.Window 里面获取到对应的 X11 窗口 XID 号 记录本文是因为我在这里踩了很多坑,核心问题就是 GTK 有很多个版本,我开始找的全是使用...gdk 窗口获取到对应的 X11 窗口的 XID 值 为了方便使用 gdk_x11_window_get_xid 方法,以下照 GtkSharp 进行一些代码定义 [UnmanagedFunctionPointer...= gdk_x11_window_get_xid(gdkWindow.Handle); Console.WriteLine($"X11 窗口 0x{x11:x2}"); } 通过以上代码输出的...X11 窗口的 XID 号,可以同步在命令行输入进 xwininfo 命令里面。...比如我这里输出的是 X11 窗口 0x5600003 的值 打开另一个命令行,输入以下命令,将 XID 传入 xwininfo 命令,即可看到显示的窗口标题和当前运行的窗口是相同的 我核心踩坑就是搜到的是

18010

dotnet 设置 X11 建立窗口之间的父子关系

在 X11 里面有和 Win32 类似的窗口之间的关系机制,如 Owner-Owned 关系,以及 Parent-Child 关系。...当子窗口最小化时,不会影响到所有者窗口 子窗口可以超过所有者窗口的范围 被拥有的窗口 = 子窗口 所有者窗口 = “在拥有它的那个窗口” 即与 WPF 的 ChildWindow.Owner = MainWindow...XSelectInput 方法时,那所有在子窗口上的消息都能被所有者窗口收到,如果调用了 XSelectInput 则子窗口收到子窗口的消息,即所有者窗口被子窗口遮挡的部分将不能收到消息,被子窗口遮挡的部分的触摸或鼠标消息会被子窗口接收...¹ 以下情况会导致 BadMatch 错误: 新的父窗口不在与旧的父窗口相同的屏幕上。 新的父窗口是指定窗口本身或指定窗口的下级。 新的父窗口是 InputOnly 类型,而窗口不是。...| SetWindowValuemask.ColorMap | SetWindowValuemask.OverrideRedirect // [dotnet C# X11

23410
  • dotnet 理解 X11 的 24 位或 32 位色深窗口

    本文记录在 X11 里面的窗口与颜色的位色深关系 本文属于学习 CPF 框架博客,感谢小红帽的 CPF 框架。...简单理解就是 24 色是不带透明的,而 32 色是带透明的 在 X11 里面,简单的创建窗口的代码大概如下图所示(看不见图片的话,开浏览器的不安全内容兼容,我的图片是 http 的不是 https 的)...其实就是 RootWindow 窗口 在 X11 里面,所有的窗口都是 RootWindow 窗口的子窗口 尝试使用以下代码来获取 RootWindow 的色深 using static CPF.Linux.XLib...那此时无论是 CPF 还是 Avalonia 还是 UNO 都开始顶不住了,如果有这样的需求,那还请到各自的开源仓库提需求 对于旧的 UNO 框架,在创建软渲染的 X11 平台的窗口时,使用的是 XCreateSimpleWindow...这里的 depth 参数需要和窗口的颜色深度匹配,否则将会看到一些奇怪的错误 额外说明的是对于 XImage 来说,深度是一回事,还有颜色格式也是很重要的 在 X11 里面有 XYBitmap 和 XYPixmap

    10010

    学习 Avalonia 框架笔记 如何创建一个全屏置顶的 X11 应用窗口

    本文记录我从 Avalonia 框架里面学到如何创建一个全屏置顶的 X11 应用窗口的方法 开始之前,先从 Avalonia 或 CPF 里面拷贝足够的代码,这部分代码可以从本文末尾找到下载方法 设置全屏的核心代码是以下三行...(EventMask.SubstructureRedirectMask | EventMask.SubstructureNotifyMask)), ref xev); } 如此即可获取一个全屏且在所有窗口...,包括任务栏的上层的最顶层 X11 窗口 以上代码是从 https://github.com/AvaloniaUI/Avalonia/blob/b5db6bb0f6c19070e2a09a23231bcc1e01c40610.../src/Avalonia.X11/X11Window.cs 里面抄的 分别是 WindowState 属性的 set 方法以及 SetTopmost 方法 为了让大家能够看到窗口在最顶层的效果,接下来绘制两条线段...693a137d9349bc65b5e2ed3a7c5d2480775e621a 获取代码之后,进入 CeaherecelallLemlalnohuce 文件夹,即可获取到源代码 更多 Avalonia 以及 X11

    62710

    Windows 10 应用创建模糊背景窗口的三种方法

    -08-31 23:59 现代的操作系统中创建一张图片的高斯模糊效果非常容易,不过如果要在窗口中获得模糊支持就需要操作系统的原生支持了。...本文将介绍三种创建模糊背景窗口的方法。有人可能喜欢称之为毛玻璃窗口、亚克力窗口。 ---- This post is written in multiple languages....三种创建模糊背景窗口的方法 Windows 10 上创建带模糊背景的窗口有三种不同的方法,不过每一种都是既有好处又有坏处的: 调用 Win32 API —— SetWindowCompositionAttribute...当然,如果需要模拟亚克力效果或者是 iOS/Mac 上的模糊效果就 gg 了。 ? 为窗口中的背景图片添加 WPF 自带的模糊效果 BlurEffect。...这种方式你想获得多大的模糊半径就能获得多大的模糊半径,不过带来的就是更高的性能损耗。同时,还得考虑在移动窗口的时候动态地去更新背景图片并再次模糊。 ?

    3K30

    【5分钟玩转Lighthouse】Python绘制图表

    通过X11 forwarding,可以以将运行在远端主机上的应用程序的窗口屏幕转发至本地主机上,进而可以方便本地直接使用远程主机上的GUI应用程序。...X11 其实是 X Window System的简称,是类Unix、现代Linux系统上支持窗口化显示的框架及服务。...在现代Linux系统中,X server服务为系统提供相对底层的图形用户界面的支持,很多Linux桌面窗口系统也都建立在X11之上。...display.png diplay命令是GraphicsMagick的“前端工具”,它不仅能浏览图片,还能修改图片,如放大缩小、旋转剪裁、甚至添加模糊/锐化等效果,本文不过多详细介绍。...display1.png 上图中可以看到,已打开的gvim和firefox是运行在远程服务器上的GUI应用,(实验的本地主机是没有这两个应用程序的)只是通过SSH X11转发将程序窗口显示转到本地。

    10.1K4617

    使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等)

    这可以实现很多系统中预设的窗口特效,比如 Windows 7 的毛玻璃特效,Windows 8/10 的前景色特效,Windows 10 的模糊特效,以及 Windows 10 1709 的亚克力(Acrylic...,就跟 Windows 10 早期版本的模糊效果是一样的。...你可以看我之前的一篇博客,那时亚克力效果还没出来: 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) - walterlv 使用 ACCENT_ENABLE_BLURBEHIND...---- 在 Windows 10 上,没有使用 WindowChrome: 你可能需要留意一下那个“诡异”的模糊范围,你会发现窗口的阴影外侧也是有模糊的!!!你能忍吗?.../// /// 要创建模糊特效的窗口实例。

    1.7K60

    从 X11 到 Wayland,迈出这一步为何如此艰难?

    X 系统和 X11 在 Linux 世界, X 系统一直占据着图形窗口系统的主导地位。...X 系统(X Window System)是一个开源的图形窗口系统,主要用于类 Unix 操作系统(如 Linux 和 BSD)。它提供了 图形用户界面(GUI) 的基本支持,包括: 绘制窗口。...X11 之后并没有推出新的主版本。 X11 的协议设计体现了当时的需求:一个分布式的、灵活的显示服务器系统。它可以通过网络远程显示图形界面,支持多种硬件和窗口管理器,成为开源操作系统的核心组件。...独立于硬件和操作系统: X11 是一个协议,可以在不同操作系统和硬件上实现。 窗口管理器支持: -X11 本身不管理窗口的布局或样式,这些功能由 窗口管理器(如 GNOME、KDE)实现。...它的优势包括: 简化架构:Wayland 将窗口管理、合成和显示功能整合到一个更高效的架构中,消除了中间层,降低延迟。

    20510

    dotnet X11 设置窗口鼠标触摸命中穿透

    本文记录如何在 X11 应用里面,使用 XShapeCombineRegion 方法配置一个 X11 窗口支持和 Win32 窗口一样的命中测试穿透功能,即对应 Win32 的 WS_EX_TRANSPARENT...的鼠标、触摸等的点击等动作的穿透功能,可以实现在窗口中挖空一块范围直接穿透到后面的窗口 在 X11 窗口中,想要实现让窗口不可命中,即所有的鼠标、触摸等的事件穿透到后面的窗口上,可以采用 libXext.so...提供的 XShapeCombineRegion 方法,也可以使用有争议的 libXfixes.so 提供的 XFixesSetWindowShapeRegion 方法 通过以上两个方法即可让 X11...窗口不响应鼠标或触摸的点击输入,让其输入到窗口后面的窗口。...github 和 gitee 上,欢迎拉取代码阅读和构建 参考文档: 如何在屏幕上显示一局部透明、鼠标点击可穿过的窗口 - V2EX 2021-08-21窗口管理器杂谈 - 简书 更多 X11 开发请参阅

    18210

    dotnet C# X11 开发笔记

    本文记录我学习开发 X11 应用的笔记 如何设置X11里面两个窗口之间的层级关系 如何类似 WPF 的 Owner 之类的关系?可使用 XSetTransientForHint 方法。...比如有 a 和 b 两个窗口,使用下面代码即可设置 a 窗口一定在 b 窗口上方 // 我们使用XSetTransientForHint函数将窗口a设置为窗口b的子窗口。...这将确保窗口a始终在窗口b的上方 XSetTransientForHint(Display, a, b); 以上代码放在 github 和 gitee 上,可以使用如下命令行拉取代码 先创建一个空文件夹...设置窗口的override_redirect属性为True,以避免窗口管理器的干预,如此即可实现无边框 var valueMask = 0...窗口绘制的笔迹 获取 Avalonia 的 X11 窗口 if (TryGetPlatformHandle()?.

    16410

    X-Windows桌面

    器重FVWM是一个老牌的,长久不衰的窗口管理器,它永远以一个忠实的 Xwindow 窗口管理器的方式工作。大家可以从网络上查找它的相关资料,很多很多。...X Window 系统版本11,也就是X11图形系统,产生与1987年,X11图形系统是X Window 系统发展的一个重要里程碑.X11是一个对网络透明的客户/服务器架构的图形显示系统,它支持应用程序在你的屏幕上绘制象素...X11还包括一些其它的辅助的函数库,使得它可以容易地绘制用户界面,例如:按钮,文本输入区等等,其组成主要有三部分:客户端;服务器和X协议。...任何系统能满足此协议及符合X协会其他的规范,便可称为X。 X11是Unix的图形系统标准(X Window System)。Linux、各种 BSD版本和多数的商用Unix都采用它。...Linux下的桌面图形系统已经发展的相当完善了,其GUI由窗口系统,窗口管理器,工具包和风格等几个部分组成,目前的桌面环境主要有两种: 1.KDE(K Desktop Environment); 2.

    1.9K20

    Visual Basic GUI:一款在SSH客户端上注入击键的工具

    今天给大家介绍的是一款注入工具,该工具名叫Visual Basic GUI,它可以通过X11转发会话来向SSH客户端注入击键数据。...也就是说,这款工具可以利用X11转发SSH会话并在目标客户端中实现远程命令执行。...工具的目的 SSH的常规运行模式要求客户端必须受到服务器端的信任,但是对于X11架构来说,服务器端也必须受到客户端的信任,而这将提供更加丰富的功能,例如允许远程服务器打开新窗口和拦截击键数据等等。...受信任的X11转发(-Y选项)会暴露大量的X11扩展功能,而攻击者就可以利用这些功能来实施攻击,比如说枚举已打开的窗口、记录/注入键盘和鼠标事件等等。...vbg.py是一个Python脚本,负责处理大多数的运行逻辑,例如检测窗口管理器、解析Payload、以及调用write_cmd等等。 工具安装 工具的安装命令如下: ?

    2.2K30

    学习 CPF 框架笔记 了解 X11 窗口和消息基础知识

    本文记录我学习 CPF 框架的笔记,这是我从 CPF 框架里面学习到的 X11 的窗口和消息基础知识。...本文将告诉大家如何创建一个 X11 简单窗口,支持在这个窗口上用鼠标画出简单的内容 开始之前,先感谢小红帽开源的 CPF 框架,详细请参阅 https://gitee.com/csharpui/CPF...本文将大量参考 CPF 里面的代码,关于对 X11 的简单封装调用的代码,我不会在博客里面写出来,只放在我的示例项目代码里,可以在本文末尾找到所有代码的下载方式 以下是创建一个简单的 X11 窗口的例子...不同于 WPF 的 Show 方法,在 X11 里面需要先将窗口关联屏幕,然后再使用 XRaiseWindow 或 XMapRaised 显示窗口,代码如下 XMapWindow(Display...但值得一提的是,在 X11 里面,可以在任意的逻辑里面执行绘图,而不是只能在曝光事件里面执行。

    38310

    Godot进行2D游戏开发入门-安装与介绍

    编辑器: Windows macOS X11(Linux、*BSD) Web Android(实验性) 导出游戏: Windows(以及 UWP) macOS X11(Linux、*BSD) Android...推荐直接从官网下载,从Stream也可以下载,但是下载的是最新的版本4.1.1,不能选择旧版本,并且运行的时候必须运行Stream。...更新的OpenGL渲染引擎。 光照和阴影算法优化性能更高效果更好。 新的TileMap编辑器支持图层、自动贴图,自动优化Tile衔接处的图像。 CanvasGroup整体设置一组精灵的效果。...支持多窗口。 中文支持优化。Label文字可以直接调整大小,并保证不模糊。 多线程导入,导入更快了。 智能寻路,这个同时也更新到3.5上。 VR游戏的支持。 编辑器中大多功能简化使用。...节点(Nodes) 节点是场景的组成部分,是游戏的最小组成单元。对象的一种。 镜头、精灵、碰撞、动画等等都是节点的一种。 节点的显示方式受上下关系影响,列表下面的节点会显示在画面上层。

    1.2K20
    领券