3

在 Windows 中,屏幕保护程序只是一个在 system32 中转储为.scr扩展名的可执行文件,它由三个开关(我认为是 /p、/c 和 /s)控制。

屏幕保护程序如何在 Mac OS X 和 Linux 上工作?它们在 Mac OS X 和 Linux(Gnome、KDE、Ubuntu 或任何不同之处)中的工作方式相似还是完全不同?

另外,它们可以用 C#/Mono 开发吗?

4

2 回答 2

5

OSX中的屏保系统是屏保(通常但不一定)是一个Objective-C库,扩展了一个基类来实现诸如绘图、首选项窗格、预览模式等方法。

这里有一个很好的关于编写它们的教程

虽然 Objective-C 是预期的语言,但在 Objective-C API 后面将 C/C++ 实现耦合在一起非常简单。

有一个 API(桥梁)允许其他语言与 Objective-C API 互操作。例如,用于允许用 Python 编写的 OSX 屏幕保护程序。我想类似的方法对于 Mono 是可行的。

xscreensaver现在主要在 OSX 上开发,并在那里使用 OSX 屏幕保护程序 API 和 X11 上的其他东西。

于 2009-11-05T22:24:49.633 回答
1

对于 X11,我很确定您可以定位xscreensaver并让它在 GNOME 中工作。不确定KDE。但是 xscreensaver 长期以来一直是 Linux 上的主要软件包。

IIRC,xscreensaver 的编程模型是您将其编写为任何绘制 X 窗口的旧应用程序。然后可以用“ -root”调用它,它应该在根窗口上绘制。但这可能还不是全部。

xscreensaver FAQ似乎表明 GNOME 和 KDE 都有自己的屏幕保护程序框架。但是gnome-screensaver 的维基百科文章说它是 xscreensaver 的包装器。

于 2009-10-19T09:43:42.813 回答