在C中,如何使用X11获取屏幕内活动监视器的几何形状(x,y,宽度,高度)

2024-03-05

我所有的搜索都得到了关于如何使用 C 获取 X11 中活动屏幕的几何形状的答案,但该屏幕可能包含许多显示器,并且通常只有一个屏幕,除非有许多用户同时使用同一台计算机。

关于获取屏幕几何形状的那些答案已经过时,因为它们没有考虑多个显示器。

那么,如何获取鼠标指针或活动窗口所在显示器的几何形状(x、y、宽度、高度)?我想要相对于屏幕的几何形状。


您需要使用 RandR 扩展 API。获取源代码xrandr实用程序并从那里窃取您需要的东西。你需要XRRGetMonitors函数和相关数据结构。您还可以使用xrandr在命令行上获取所需的信息。

我不知道是否存在活动监视器这样的东西,因为活动窗口可以跨越多个监视器,并且指针仍然可以位于另一个监视器中。无论如何,XRRMonitorInfo结构包含有关显示器几何形状的所有信息,包括其尺寸(以像素和毫米为单位)及其在逻辑屏幕上的位置,因此您可以从一对屏幕坐标中提取显示器描述。

也可以看看这个答案 https://stackoverflow.com/a/42886310/775806.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在C中,如何使用X11获取屏幕内活动监视器的几何形状(x,y,宽度,高度) 的相关文章

  • 如何将 X11 键符号映射到 Unicode 字符?

    X11 将键码映射到键符号 然后将键符号映射到 Unicode 在程序中检索键符号到 Unicode 映射的好方法是什么 Try this http www cl cam ac uk mgk25 ucs keysym2ucs c
  • 如何在Linux中做一个假的鼠标滚轮移动

    我正在尝试模拟键盘和鼠标事件 我已经成功制作了假键盘 keydown keyup 假鼠标按钮按下 向上和假鼠标移动 但我没有找到如何做假鼠标滚轮移动 有人可以向我解释一个在 C 中执行此操作的简单方法吗 鼠标移动和鼠标按钮按下 Displa
  • 如何避免 Linux/X11 上的 pygame 撕裂

    我一直在玩 pygame 在 Debian Lenny 上 它似乎工作得很好 除了烦人的位图撕裂 全屏或窗口模式 我正在使用默认的 SDL X11 驱动程序 谷歌搜索表明 X11 不提供垂直同步功能 这是 SDL 的一个已知问题 即使使用使
  • Windows 上 Git Bash 中的 X 会话?

    我在 Windows 上使用 Git Bash 我已经使用 Git Bash 通过 SSH 连接到 UNIX 机器 并尝试使用 GUI 运行程序 我收到消息 LINUX UNIX system detected but unable to
  • X11 为什么我无法绘制任何文字?

    我正在努力学习X11 这对我来说非常困难 因为我没有 Linux 上的窗口应用程序的经验 我写了一些简单的代码 但无法解决这个不可见的文本问题 一切可能都工作正常 当我尝试使用 DrawRectangle 函数绘制矩形时 它正在工作 这是代
  • Xlib XGetWindowProperty 返回零项

    我在读取某些 XWindow ICCCM 属性时遇到问题 问题实际上是当我尝试读取 NET WM STATUS 属性时 我正在使用的功能是 int get property value Display display Window wind
  • 全局 alt+space 热键抓取 - 奇怪的键盘焦点行为

    我正在抓Alt Space全局热键使用xcb grab key 如下 xcb key symbols t keysyms xcb key symbols alloc c xcb keycode t keycodes xcb key symb
  • Xt 错误:如果使用默认显示,则无法打开显示

    Overview 我正在尝试让 XQuartz 在 OSX 上工作 这样我就可以通过 Docker 进行 X11 转发 我正在跟进此处的说明 https learning continuous deployment github io do
  • 如何开始编写合成 WM?

    我想编写一个基本的硬件加速窗口管理器 所以我一直在寻找一些有关如何开始的文档 但我只找到了本教程 http wingolog org archives 2008 07 26 so you want to build a compositor
  • Linux 获取焦点 GUI 窗口更改的通知

    在Linux中 当当前聚焦的GUI应用程序发生变化时是否可以收到通知 我正在编写一个应用程序 用于跟踪用户在每个 GUI 应用程序上停留的时间 每个进程 而不是在一个进程内 并且需要某种方法来访问此信息 我正在用 c 做这个 Here is
  • Linux/X11下如何隐藏鼠标指针?

    如何在X11下隐藏鼠标指针 我想使用内置库来执行此操作 而不是使用 SDL SDL ShowCursor 0 或 glut glutSetCursor GLUT CURSOR NONE 之类的库 此外 无论指针位置如何 鼠标指针都应该隐藏
  • 如何将 shm pixmap 与 xcb 一起使用?

    我尝试学习如何使用 xcb 库中的共享内存像素图 你们中有人有这方面的经验并想分享示例代码和 或信息吗 这会很有帮助 Thanks 经过一些研究 我发现了如何在 xcb 中使用共享内存像素图 这是我的测试代码 include
  • X11 非剪裁子窗口

    X 有非裁剪子窗口的概念吗 中的行为 Windows 和 OSX 的这些是 父母总是站在孩子后面 当父项关闭时 子项也会自动关闭 孩子们在移动时跟随父母 如果答案是否定的 那么我可以模拟 2 和 3 但是 1 怎么样 Thanks Cosm
  • 在 Linux C 控制台应用程序中模拟按键

    有没有办法用C语言在Linux中模拟按键 在我的具体情况下 我使用的是 Ubuntu 9 04 需要一个简单的应用程序 在启动时调用 暂停 按钮 这将使 Firefox 中的 iframe 使用 Javascript 进行刷新 我假设你的意
  • 如何使用 Xlib 将一个窗口的内容复制到另一个窗口?

    我想使用 Xlib 将现有窗口的内容复制到我自己的窗口 我尝试过 XCopyArea 但它拒绝在两个 Windows 之间复制 我也尝试过 XGetImage 和 XPutImage 但也失败了 将窗口的图形内容复制到我自己的窗口的最佳方法
  • 从 XGrabKeyboard 中排除一些键

    考虑一个应用程序 需要在聚焦时抓住键盘 以便捕获所有窗口管理器命令 Alt F4 等 进行处理 现在 这有一个缺点 即当键盘被抓住时 用户无法通过键盘切换到另一个应用程序或虚拟桌面 我想要一个用户定义的组合键白名单 例如 用于切换虚拟桌面的
  • X11 模式对话框

    如何使用 Xlib 在 X11 中创建模式对话框 模态对话框是一个位于应用程序其他窗口之上的窗口 就像瞬态窗口一样 并且拒绝将焦点给予应用程序的其他窗口 在 Windows 中 当试图从模态窗口夺取焦点时 模态也会通过闪 烁模态窗口的标题栏
  • 有什么有效的方法可以将 XImage 数据转换为像素图(例如 RGB 四边形数组)?

    我正在尝试使用 XGetImage 捕获图像 一切都很好 但我需要将数据发送到需要 RGB 四边形数组的模块 对图像中的每个像素调用 XGetPixel 非常慢 在 i5 上 1440x900 分辨率为 0 5 秒 我在xlib中查找了XG
  • 查找免费的 X11 显示号码

    我有一些需要 X11 显示器的单元测试 因此我计划在运行它们之前启动 Xvfb 但要启动 Xvfb 我需要一个空闲的显示器编号来连接它 我最好的猜测是看看有什么免费的 tmp X11 unix但如果许多测试试图同时开始 我不确定如何处理比赛
  • 链接错误:命令行中缺少 DSO

    我对 Linux 使用 Ubuntu 14 04 LTS 64 位 相当陌生 来自 Windows 并且正在尝试移植我现有的 CUDA 项目 当通过链接时 usr local cuda bin nvcc arch compute 30 co

随机推荐

  • 向导航栏添加类似于 iOS 11 中 Apple Music 的标题和副标题

    这是一IOS 11问题 我不确定我们是否可以谈论这个 iOS 还处于测试阶段 但我在 Apple Music 中查看了这个导航栏 我知道他们推出了大标题IOS 11 navigationController navigationBar pr
  • 如何使用 Cordova/Ionic 在 inappbrowser 中显示 AdMob 横幅

    我在用着ionic framework 我可以创建一个admob横幅 但是当我加载时inappbrowser在我关闭之前 横幅不会显示inappbroswer 有没有办法在以下情况下显示 AdMob 横幅 inappbrowser开了 我建
  • IIS 8.0 详细 500.0 内部服务器错误 - IsapiModule 未找到

    我正在开发一个最初在 Visual Studio 的早期版本 2013 年之前 上构建的项目 但遇到了错误 我在 google 和 stackoverflow 上搜索了又搜索 包括以下资源 IIS 7 5 详细错误 500 0 在 Wind
  • 如何将测试保留在 Vite 项目的源目录之外?

    Running npm init vue latest通过以下设置 生成一个 Vitest 规范文件src目录 我想知道为什么 Cypress e2e 测试有一个单独的目录 而 Vitest 单元测试就在源代码旁边 有什么原因吗 我想将这些
  • 如何通过 API 将资金从 PayPal 帐户转移到另一个 PayPal 帐户

    我花了很长时间寻找一种通过 API 将资金从企业 PayPal 转移到多个用户的 PayPal 帐户的方法 IE 我有收件人的 PayPal 电子邮件地址 我想通过 API 将 X 笔资金从我们的帐户转移到他们的帐户 PayPal 自适应支
  • 如何检查属性是否存在[重复]

    这个问题在这里已经有答案了 我正在尝试从中读取属性DirectoryEntry 不幸的是并非所有记录都有employeeNumber属性 所以我需要检查它是否存在 我已经尝试过 a one DirectoryEntry record a G
  • 退款状态NO_API_ACCESS_TO_RECEIVER,贝宝响应

    我在我的 Rails 应用程序中使用这个 gem 进行支付 https github com jpablobr active paypal adaptive payment https github com jpablobr active
  • Apache mod_auth_form 如何锁定文件夹

    在我看来 我对 mod auth form 应该如何工作有一个根本性的误解 我参考了 Apache 文档的这一页 http httpd apache org docs current mod mod auth form html 我有一个公
  • 不同端口上的 Route 53 记录集

    我是一名 ruby 开发者 刚刚开始学习一些 Node js 我正在运行一个实例AWS主持我的rails带有乘客 nginx 监听的应用程序port 80 现在我想举办一个node js同一实例 t1 micro 上的应用程序并将其监听端口
  • UIViewController 不自动旋转

    正如标题所说 我的 UIViewController 无论如何都不会旋转 当它加载时 shouldAutorotateToInterfaceOrientation 被调用 但之后就不会了 更新1 这是一个非常非常奇怪的问题 至少对于我来说
  • 如何屏蔽nginx日志中POST正文的敏感信息?

    为了方便分析我们保存 request body访问日志中的字段 但是 帖子正文中存在一些敏感信息 例如密码或信用卡号 会在日志中暴露 我们怎样才能掩盖这些信息呢 password 1234asdf gt password 如果我编写一个 n
  • 如果 A 列为空,隐藏 Google 电子表格中的行吗?

    如果 A 列为空 我试图隐藏行 我想将其应用于特定工作表 第 1 周 第 2 周 第 3 周 第 4 周和第 5 周 这是我迄今为止第一周的代码 function ConditionalHideRow var ss SpreadsheetA
  • VSCode 添加随机百分比

    每次我使用终端打印出字符串或任何类型的字符时 它都会自动在每行末尾打印一个 每当我尝试从 C 或 php 打印某些内容时 都会发生这种情况 但还没有尝试过其他语言 我认为这可能是 vscode 的问题 并且不知道它是如何出现的或如何修复它
  • 如何从未签名的存储库安装 debian 软件包

    尝试从未签名的存储库将 Debian 软件包安装到 Debian 9 apt get allow unauthenticated update Get 1 http files freeswitch org repo deb freeswi
  • 在 WPF 中显示多维数据

    在 WPF 中显示多维数据的最佳方式是什么 直到运行时我才会知道数据的大小 形状 理想情况下 我想使用数据绑定 但这不是严格的要求 我正在考虑某种网格 但我不知道如何动态绑定到数据并让它计算出行数和列数 请提供建议和示例 听起来好像您想要一
  • 隐藏样式、块样式和无样式之间的区别

    我试图找出风格之间的差异 hidden block none 我正在尝试这个例子 但不幸的是这不起作用 有人可以告诉我答案吗 div hr DIV 1 hr div 你真的很接近 两种不
  • 用于输入/V 模型的 Vue 过滤器

    所以我对 ES6 SPA Javascript 和 Vue JS 非常陌生 我主要使用 JQuery 所以我有一个全局过滤器 Vue filter formatDate function value if value return mome
  • 在 Backbone.js 中,如何让模型超类默认值充当子类的默认值?

    我有一个定义一些默认值的类和一个定义一些默认值的子类 但是 当我创建子类的实例时 它只查看本地默认值 不会将其默认值与父类的默认值合并 有没有什么简单的方法可以做到这一点 而无需显式地将本地默认值与父默认值合并initialize每个子类的
  • Javascript:类属性在拖动事件期间变得未定义

    我对 Javascript 中的类还很陌生 我已经被困了几天试图理解为什么我的属性在我的所有方法中都变得未定义 我试图复制this https www kirupa com html5 drag htm到一个类中 但不成功 因为每次调用方法
  • 在C中,如何使用X11获取屏幕内活动监视器的几何形状(x,y,宽度,高度)

    我所有的搜索都得到了关于如何使用 C 获取 X11 中活动屏幕的几何形状的答案 但该屏幕可能包含许多显示器 并且通常只有一个屏幕 除非有许多用户同时使用同一台计算机 关于获取屏幕几何形状的那些答案已经过时 因为它们没有考虑多个显示器 那么