屏幕保护程序如何在Mac OS X和Linux上运行?

时间:2009-10-19 09:27:01

标签: c# mono cross-platform screensaver

在Windows中,屏幕保护程序只是一个可执行文件,其中 .scr 扩展名被转储到system32中,并且它由三个交换机控制(我认为是/ p,/ c和/ s)。

屏幕保护程序如何在Mac OS X和Linux上运行?它们在Mac OS X和Linux(Gnome,KDE,Ubuntu,或者差异在哪里)的工作方式类似,还是完全不同?

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

2 个答案:

答案 0 :(得分:3)

OSX中的屏幕保护程序系统是屏幕保护程序(通常但不一定)是Objective-C库,扩展基类以实现绘图,首选项窗格,预览模式等方法。

有一个关于编写here的好教程。

虽然Objective-C是预期的语言,但它足以直接将Objective-C API背后的C / C ++实现结合在一起。

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

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

答案 1 :(得分:1)

对于X11,我很确定你可以定位xscreensaver并让它在GNOME中运行。关于KDE不确定。但是xscreensaver一直是Linux上的主流软件包。

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

xscreensaver FAQ似乎表明GNOME和KDE都有自己的屏保框架。但是the Wikipedia article for gnome-screensaver说它是xscreensaver的包装器。