Screensavers have been part of the Windows scene for many years and were originally provided to prevent phosphor burn when static images were left on the screen for a long period. This is no lomger relevant with todays monitors and they are now used instead to display an interesting graphic, to display a system logo, or to protect the system from unauthorised access.I had wanted to create a sceensaver using Win32 assembly for some considerable time. I read the meagre Microsoft documantation and they say you need to use their SCRNSAVE library. I tried to do this converting sample "C" code to assembly, but no way could I get it to work. A long time back I discovered Lucian Wischik's site and his Scrplus-API screensaver development kit, which is offered as an alternative to SCRNSAVE, together with comprehensive documentation on how to write screensaver software. But it was all "C" orientated and I did not persue it further, Then recently I came across an example of an example written by "Forger" in "C" code, and as it did not use SCRNSAVE, I decided to attempt a translation to Win32 assembly. This was successful and I created a simple "Blank" screensaver from it. This was the breakthrough that has enable me to create some demonstration screen savers, which are available for you to download and experiment with.
Basic RequirementsTo get started in your writting of screensavers, you should first download a copy of Lucian Wischik's invaluable document "How to write a 32 bit screen saver". While this is orientated towards the "C" programmer, it is never the less full of valuable information on the various API functions which you need to use in the creatiin the creation of a screen savers. (As a convienience to fellow programmers you will find a copy of "HowToScr" in my download section. Read this and you should see where my code has come from. You might also want to take note of Lucian's information on the subject of "Hot Corners". This is a Windows feature which was brought in with Win95 and it allows the user to launch the default saver (if any), by moving the mouse cursor to a designated corners of the desktop. This is very useful for those occasions when you need to leave your PC - say to answer the teephone and wish your system to be secure in your absence; you need to enable the screensaver password if you want full protection. To enable "HoT Corners" however, there has to be a suitable program running. With Win95 the file SAGE.DLL is used and there are other third party alternatives. For our convienience Lucian has provided the freeware file ScrHots.dll and this is also available from my downloads. A text file provided with it gives instructions on its instalation. And after such installation you will find that your "Display Properties has a new tab for the "Hot Corners" dialog which enables you to easily change the designated corners.
In order to provide you with an overall view of some the capabilities of screen savers, I have provided a selection, which ranges from the basic screen blanker, through a useful text scroller and a "balls" animation, to an OpenGL rotating textured cube with logo. These all savers provide password control and their other features are annotated in the table below. All savers are supplied together in the file Savers.zip
|Blank||A basic blanking saver, with password control.|
|ScrollTxt||A scrolling text saver, in which you can set your own text and scrolling speed.|
|CubeTxt||An OpenGL cube animation with a logo on two faces. This can easily be customised to use your own logo or photo.|
|Balls||A very interesting simulation of collisions between molecules in a gas; you can change the number of balls and their speed or energy.|
|RasOnly||An OpenGL animation with a logo on all visible faces of the cube. Using an image editor you can customised it to use your own logo or photo.|
I intend to add more screen saver information and savers here as the project progesses