How to write a screen saver
The basic requirements for creating a screen saver are: |
1 In the properties for your application set the title to: |
SCRNSAVE: name The 'name' part will appear on the list of available screen savers in the control panel. Note that this is not the title of the form, it is the application title and must be set in the project properties. |
2 When you compile the program use .SCR for the extension instead of .EXE as normal. Place the compiled code in the Windows\System directory (it can also go in Windows, but System is preferred) |
3.When your application starts check for a previous instance and stop if one is found: |
Sub Form_Load() If App.PrevInstance Then Unload Me ' NEVER use END! Exit Sub End If End Sub |
4.Check the command line for switches: |
/s setup mode - display/update configuration
options only /p nnn preview mode - "nnn" is a handle to the preview window /a password support check |
5.If the screen saver is to run normally use the following to tell Windows that you are taking over as a screen saver (this will disable ALT-TAB and CTRL-ALT-DEL and prevent more instances from being started): |
Private Const SPI_SCREENSAVERRUNNING=97 Private Declare Function SystemParametersInfo Lib "user32" _ Alias "SystemParametersInfoA" (ByVal uAction As Long, _ ByVal uParam As Long, lpvParam As Any, _ ByVal fuWinIni As Long) As Long SystemParametersInfo SPI_SCREENSAVERRUNNING, 1, ByVal 1&, False 'Before your code terminates tell Windows you are leaving with: SystemParametersInfo SPI_SCREENSAVERRUNNING, 0, ByVal 1&, False |
For more information, including sample code that handles password
protected screen savers check http://www.arcatapet.com/vb.html or http://www.tiac.net/users/lvasseur/ |