2009-10-19 62 views
2

在Windows屏幕保護程序僅僅是一個帶有。可控硅延伸在system32傾倒可執行文件,並且它與三個開關(/ P,/ C和/ s時,我想)控制。屏幕保護程序如何在Mac OS X和Linux上運行?

屏幕保護程序如何在Mac OS X和Linux上運行?它們在Mac OS X和Linux(Gnome,KDE,Ubuntu,或其他地方)中的工作方式類似嗎?還是完全不同?

另外,它們可以用C#/ Mono開發嗎?

回答

3

OSX中的屏幕保護程序系統是一個屏幕保護程序(通常但不一定)是一個Objective-C庫,它擴展了基類以實現諸如繪圖,偏好窗格,預覽模式等方法。

有一個很好的教程寫他們here

雖然Objective-C的是預期的語言,它是足夠直接耦合在一起的Objective-C API後面的C/C++實現。

有一個API(橋樑)允許其他語言與Objective-C API互操作。例如使用here來允許用Python編寫OSX屏幕保護程序。我想像一個類似的方法是可行的單聲道。

xscreensaver現發展主要在OSX,並使用OSX屏保API有和X11別的東西。

1

對於X11,我敢肯定,你可以針對xscreensaver和有它在GNOME工作。不確定KDE。但是,xscreensaver一直是Linux上的主流軟件包。

IIRC,xscreensaver的編程模型是您將其編寫爲任何繪製X窗口的舊應用程序。然後它可以用「-root」調用,它應該在根窗口上繪製。但這可能不是全部。

xscreensaver FAQ似乎表明,GNOME和KDE每個人都有自己的屏幕保護程序框架。但the Wikipedia article for gnome-screensaver表示這是xscreensaver的包裝。

+0

我的一位教授說,X11屏保只是全屏的程序,可以聽任何鍵盤/鼠標信號使其退出。儘管如此,他還是那些老派的失去知名度的學者之一,所以我不知道那是多麼真實。 – supercheetah 2009-10-19 11:57:10

+0

@supercheetah:實際上,它比這更簡單。嘗試手動運行'/ usr/lib/xscreensaver'中的任何屏保。屏幕保護帶('xscreensaver','kscreensaver','gnome-screensaver')負責抓住鍵盤和鼠標並殺死屏幕保護程序。你不必重新發明那個輪子。 – ssokolow 2013-04-07 12:55:08