Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Screensaver
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Underlying architecture == {{Expand list|date=February 2014}} Screensavers are usually designed and coded using a variety of programming languages as well as graphics interfaces. Typically the authors of screensavers use the [[C (programming language)|C]] or [[C++]] programming languages, along with [[Graphics Device Interface]] (GDI), such as [[OpenGL]] ("Open Graphics Library", which works on many, if not most, platforms capable of [[3D rendering]]), or alternatives such as [[Microsoft DirectX]] (which is limited to [[Microsoft]] platforms, mainly [[Microsoft Windows]] and the [[Microsoft Xbox]]), to craft their final products. Several [[OS X]] screensavers are created and designed using [[Quartz Composer]]. The screensaver interfaces indirectly with the operating system to cause the physical display screen to be overlaid with one or more graphic "scenes". The screensaver typically terminates after receiving a message from the operating system that a key has been pressed or the mouse has been moved. === Microsoft Windows === [[File:StarfieldSimulation.gif|alt=Animation of stars becoming bigger and moving away from the center of the image, simulating moving towards the stars.|thumb|A recreation of Starfield Simulation, one of the screensavers added in [[Windows 95]].]] If the system detects inactivity lasting longer than the time specified in the [[Control Panel (Windows)|control panel]], check if the active program is a simple program (and not another screensaver) by sending the "<code>WM_SYSCOMMAND</code>" message with the "<code>SC_SCREENSAVE</code>" argument. If the program calls in response the standard system function (<code>DefWindowProc</code>), the screensaver defined in the control panel screen runs. A Windows screensaver is a regular [[Portable Executable]] (PE) with the <code>.scr</code> file extension. This enables [[malware]] authors to add ".scr" to the name of any [[win32]] [[executable]] file, and thereby increase likelihood that users of [[Microsoft Windows]] will run it unintentionally. In addition, this program should support the following [[Command-line interface|command line]] parameters:<ref>{{Cite web |title=INFO: Screen Saver Command Line Arguments |url=http://support.microsoft.com/kb/182383 |url-status=live |archive-url=https://web.archive.org/web/20140202212351/http://support.microsoft.com/kb/182383 |archive-date=2014-02-02 |access-date=2014-02-01 |publisher=[[Microsoft]]}}</ref> With no parameter β shows the Settings dialog box or do nothing. ScreenSaver.scr <code>/s</code> Runs the screensaver. ScreenSaver.scr <code>/p</code> or <code>/l</code> <HWND> Previews the screensaver as child of window. <code><HWND></code> (presented as unsigned [[decimal number]]) is an identifier ([[Handle (computing)|handle]]) of the window in which the preview should appear. ScreenSaver.scr <code>/c</code> Shows the Settings dialog box, modal to the foreground window. ScreenSaver.scr <code>/a </code><HWND> Changes password, modal to window <code><HWND></code>. Windows 95 screensavers must handle it. === macOS === Under macOS, screensavers are regular macOS application bundles with the <code>.saver</code> file extension.<ref>{{Cite web |title=ScreenSaverView - ScreenSaver {{!}} Apple Developer Documentation |url=https://developer.apple.com/documentation/screensaver/screensaverview |url-status=live |archive-url=https://web.archive.org/web/20180925180703/https://developer.apple.com/documentation/screensaver/screensaverview |archive-date=2018-09-25 |access-date=2018-09-25 |website=Developer.Apple.com |publisher=[[Apple Inc.]] |language=en}}</ref> Internally, the screensaver must define a class that is subclass of <code>ScreenSaverView</code>. The new class must be assigned as <code>NSPrincipalClass</code> in the xcode project, so that when the screensaver is launched by the system, this class gets instantiated. === Atari === As one of the first screensavers appeared in [[8-bit]] Atari computers, forcing systemic color changes when the computer is idle lasting a few minutes (different times depending on the model), stored in the system [[Read-only memory|ROM]] of the computer.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)