- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
献给所有喜欢低级 Window Server(CoreGraphicsPrivate.h 等)、Mac 上的 X11、SIMBL 和其他疯狂东西的人:)
Mac 上有一个简单的 X11 模拟应用程序(如 xterm、xeyes 等),只有一个窗口。运行时,X11 以某种方式创建一个 native Quartz 窗口来表示这个模拟应用程序,并且可以通过 Quartz Window Services 访问该窗口,以便我可以获得它的 CSWindowID、标题、位置、大小和所有者的 PID(X11.app 的 PID)。但它不支持 Accessibility API,因此无法控制它(除了,可能来自同一进程的 Core Graphichs 私有(private)函数)。
<小时/>现在,任务如下:
我需要在这样的窗口上托管一个额外的 NSView (或者只是画一些东西)。我指的是原生 Quartz 窗口,它是 X11 模拟某些应用程序的结果。我知道,要在 Mac 上操作窗口,我必须处于同一进程中,即 X11.app。
<小时/>我编写了一个SIMBL插件,它侵入了X11.app进程。
在那里我可以调用[NSApp windows],但我一直得到恰好2个NSWindows,它们与真实应用程序的窗口没有任何共同点。它们甚至在屏幕上不可见。
尽管如此,当我调用 NSWindowList() 时,我得到了我需要的任何内容(X11 窗口的窗口 ID),甚至更多(来自其他应用程序的窗口 ID)。
当我获得 X11 模拟窗口的 CSWindowID 时,我调用 [NSApp windowWithWindowNumber: ] (Cocoa) 和 HIWindowFromCGWindowID() (Carbon),但它们都返回 nil!来自完全相同的过程!
顺便说一句,当我侵入 Safari 进程和其他进程时,所有这些操作都可以完美运行......
<小时/>所以,问题是:
X11 如何创建此类无法从同一进程访问的窗口?
如何获取指向 X11 窗口(NSWindow *、CGContextRef,或者至少任何东西...)的指针并在其上托管我的图形(我什至不谈论 NSViews)?
提前非常感谢!
最佳答案
据我了解,X11 使用自己的 Windows 服务器和通用堆栈。这就是为什么它无需特殊端口即可运行 X11 应用程序。
它只有一层模仿 Cocoa windows 的响应层,以便它可以与通用接口(interface)进行通信。它不是伪装的 Cocoa 堆栈,而是表面上伪装成 Cocoa 的 X11 堆栈。因此,它只响应 Cocoa 相关消息的子集。
我认为要在 X11 中做任何严肃的事情,你必须从一开始就使用 X11 API。换句话说,编写时就好像它不打算在 Mac OS 上运行一样。
关于cocoa - Mac OS X Window Server 与 X11 : the insane task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3110067/
我正在以 XML 格式解析和存储从服务器获取的数据。该应用程序是一个瘦客户端,它非常频繁地请求这样的服务器端数据。一些变量将是触发更多网络调用的 uris。数据的形式是: value
我更喜欢编码标准是合乎逻辑的。这是我为什么不遵循以下一组标准的观点。 我需要知道以下两件事之一:(1)为什么我错了,或者(2)如何说服我的团队更改它们。 camelCase:函数,类名,方法和变量必须
在我的一个 Java 项目中,由于 Java 处理 (not) 的方式,代码重复困扰着我。原语。必须手动将相同的更改复制到四个不同的位置(int、long、float、double)再次,对于第三次,
出于各种原因,我想开始在设计中使用更多不可变类型。目前,我正在处理一个现有类如下的项目: public class IssueRecord { // The real class has mo
我们有一个 3 主机的 Kafka 集群。我们有 136 个主题,每个主题有 100 个分区,复制因子为 3。这使得我们的集群中有 13,600 个分区。 这是我们主题的合理配置吗? 最佳答案 太多了
这绝对让我感到震惊,!&&%&$ 疯了......它无视我能想到的一切。 这个角色就在这里... " " 在这些引号之间......打开谷歌浏览器并检查。你会看到一个 ……正常吧?现在右
这样做的最佳方法是什么?这是一个 250GB 的文本文件,每行 1 个单词 输入: 123 123 123 456 456 874 875 875 8923 8932 8923 想要的输出: 123
memberA 定义在 ClassA 的头部。 memberB 定义在 ClassB 的头部。 B类是A类的子类 在 ClassB 的实例中,通过简单赋值设置 memberA: memberA = 0
这个问题在这里已经有了答案: Check legal characters by regular expression but with unexpected result (2 个答案) 关闭 7
我正在阅读关于 if consteval (§3.2) 的 C++ 论文,并看到一段显示 constexpr strlen 实现的代码: constexpr size_t strlen(char co
This is the game 我已经成功地生成了随机混合的 4 种颜色和 4 个立方体的问题,并遵循链接中建议的配色方案。 因此,目标是使用 clpfd 生成问题的可能解决方案。主要原则是基本的,
#include union NumericType { float value; int intvalue; }Values; int main() { Values.va
献给所有喜欢低级 Window Server(CoreGraphicsPrivate.h 等)、Mac 上的 X11、SIMBL 和其他疯狂东西的人:) Mac 上有一个简单的 X11 模拟应用程序(
我在一个 pygame 项目上工作,其中程序保存了大量的对象(100 000 + 对象)。该脚本基于每组对象之间的大距离。为简单起见,该计划是一张无边界的 map ,上面有一个在上面移动的相机。对象密
我不知道发生了什么,但我正在试验 GSUB 然后决定我不想再使用它所以将我的 link_to 参数改回: 现在我不断收到这个错误:nil:NilClass 的未定义方法 `gsub' 当我从我的表演
来自this线程(Control.Monad.Cont fun,2005),Tomasz Zielonka 引入了一个函数(Thomas Jäger 以清晰而漂亮的方式进行了评论)。 Tomasz 获
我是一名优秀的程序员,十分优秀!