以编程方式在macOS上创建虚拟显示器



我正在寻找在macOS上创建虚拟显示器的能力,最好使用Electron/Node.js或本地macOS开发,如果这是唯一的手段的话。

我想创建一个虚拟显示器,它的功能就像真实的一样,可以重新排列等等。

基本上,想象一下当你把HDMI电缆插入电脑时会发生什么——完全一样。

我调查了一下:

  • 屏幕(电子(
  • Quartz Display Services(苹果开发者(
  • AVCaptureDevice(苹果开发人员(

但找不到任何有用的信息-这些信息大多是只读的。

我不知道有哪个库能为您提供现成的功能(无论如何,StackOverflow不适合库推荐(。

如果您要自己实现它,则需要实现一个虚拟显示驱动程序。要做到这一点,您需要了解IOKit、IODisplay、IOFramebuffer和(可能(IOGraphicsLib。这是一个非常复杂的项目,您需要了解C++。

请参阅苹果文档中的IOKit,了解您正在查看的内容。

根据您尝试做什么,可能值得研究VNC是如何工作的,特别是远程帧缓冲协议。

CoreGraphics中有未记录的API来创建虚拟显示。它可以从Objective-C中预期地工作,它基于API(转储在https://github.com/w0lfschild/macOS_headers/tree/master/macOS/Frameworks/CoreGraphics/1348/(。至少在macOS 10.15中,对macOS 11一无所知。但是,如前所述,它是未记录的,因此可能会在没有警告的情况下更改,或者如果使用不当,可能会导致机器崩溃。

最新更新