问题标签 [simbl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2574 浏览

iphone - 可以用 SIMBL 为 iPhone 的 Safari 开发插件吗?

可以用 SIMBL 为 iPhone 的 Safari 开发插件吗?

0 投票
1 回答
482 浏览

installation - 使安装程序元包需要 SIMBL?

使用 PackageMaker,我如何制作需要安装 SIMBL 的 .(m)pkg - 如果已安装,安装应该简单地继续,否则,应该在安装我的 SIMBL 插件之前安装 SIMBL?

我尝试简单地将 SIMBL.pkg 拖到左侧窗格中,但不知何故所有资源和InstallationCheck脚本都丢失了,所以这可能不对。

0 投票
1 回答
789 浏览

cocoa - 如何使用 SIMBL 开发 safari 插件(输入管理器)?

现在想开发一个使用SIMBL的safari插件,但是我搜索了很多网页都没有找到一些源代码或简单的示例,有人可以给我或指向一个位置吗?非常感谢你!!!

0 投票
1 回答
510 浏览

safari - Safari版本号?

我正在 MAC 上开发一个 safari 插件。现在我想知道 safari3、safari4 的所有版本号,因为我可以在一些插件示例代码 info.plist 中看到:MinBundleVersion 是 5530,我检查我的 safari 版本是: 3.1.2(5525.20.1),我觉得有些用户的safari3版本会比我的低。但我不知道 safari3 的最低版本号。我搜索了Apple web,但没有得到任何结果,非常感谢!

0 投票
1 回答
55 浏览

cocoa - 为什么类 WebBaseNetscapePluginView 的实例不响应 safari4 中的选择器?

我正在用 Safari 开发一个插件。我按照 adblocker 源代码来调整方法:

WebBaseNetscapePluginView 类的,但我发现在 Safari4 中没有响应。为什么?

0 投票
1 回答
71 浏览

cocoa - Cocoa 插件中的单例

我如何从 SIMBL 插件中获取主应用程序中的单例?当我尝试调用类似的东西[ProcessControl sharedInstance]时,我收到一个错误,即 ProcessControl 未定义(即使它是在头文件中声明的)。

0 投票
2 回答
160 浏览

simbl - SIMBL 插件可以是专有的和闭源的吗?

我不确定,因为SIMBL是 GPL。

0 投票
2 回答
4543 浏览

cocoa - Mac OS X Window Server vs. X11:疯狂的任务

献给所有喜欢低级 Window Server(CoreGraphicsPrivate.h 等)、Mac 上的 X11、SIMBL 和其他疯狂东西的人 :)

Mac 上有一个简单的 X11 模拟应用程序(如 xterm、xeyes 等),只有一个窗口。在运行时,X11 以某种方式创建了一个原生 Quartz 窗口来表示这个模拟的应用程序,并且这个窗口可以通过 Quartz Window Services 访问,这样我就可以获得它的 CSWindowID、标题、位置、大小和所有者的 PID(X11.app 的 PID)。但它不支持 Accessibility API,因此无法控制它(除了,可能来自同一进程的 Core Graphichs 私有函数)。


现在,这是任务:

我需要在这样的窗口上托管一个额外的 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 或至少是任何东西......)的指针并在它们上面托管我的图形(我什至不谈论 NSView)?


提前非常感谢!

0 投票
1 回答
1414 浏览

macos - SIMBL with Method Swizzling

我在使用 SIMBL 连接的外部应用程序中覆盖某些功能时遇到了一些很大的麻烦。

在这个应用程序中,有一个类 - 我们称之为“AppClass”。在这个类中有一个函数,

我从类转储二进制文件中得到了这个。整个接口定义为:

我试图用 jr_swizzleMethod:withMethod:error 覆盖这个函数:

由于缺乏文档,这就是我想出的:

应该够了吧?但我在编译时收到此错误:

我该如何解决这个问题?

0 投票
2 回答
1241 浏览

macos - SIMBL 和 mach_star 的优缺点是什么?

对于为 Mac OS X 应用程序编写 hack 和非官方扩展,今天似乎有两种选择:SIMBLmach_star. 我正在启动一个需要注入另一个进程的项目,我需要在这些库之间做出决定。

SIMBL 和 SIMBL 在方法和功能上有何不同mach_star?为什么我要使用其中一个?