Screen Saver Programs

From QB64 Phoenix Edition Wiki
Revision as of 11:15, 23 January 2023 by RhoSigma (talk | contribs)
Jump to navigation Jump to search
Creating a QB64 Screen Saver

Screen savers are simply graphics EXE programs renamed with the SCR file extension. The program should NOT use a lot of Window's CPU resources! To check the CPU usage, open Task Manager by pressing Ctrl + Alt + Delete keys and look for the QB64 program running in the Processes tab list. CPU usage should be less than 50% and ideally less than 20%. Use _LIMIT or SLEEP when needed.


Renaming an EXE Program to a SCR File and Installing

The program can be renamed several ways using a program or batch file you make or doing it manually in Windows. In Windows you can open an Explorer window select the Tools menu and click Folder Options.... Select the View tab and uncheck the Hide extensions for known file types box. Then you can simply rename the program file changing the extension. Then either move the file or Install it as explained below:

  • Install the program in the SCR file Right click pop-up menu.
  • Copy the SCR program to the C:\Windows\System32 folder so that Windows will list it in the Desktop Properties. Select the Screensaver tab's drop-down Menu List and select the new screensaver from the list.


Example: A screen saver that un-organizes the Desktop.

S& = _SCREENIMAGE                  'get the image of the desktop
RANDOMIZE TIMER
screenx = _WIDTH(S&)    'use current screen resolution dimensions
screeny = _HEIGHT(S&)
SCREEN _NEWIMAGE(screenx, screeny, 32)
_FULLSCREEN
_DISPLAY
temp& = _NEWIMAGE(40, 40, 32)
DO: _LIMIT 10
  x1 = INT(RND * screenx)
  y1 = INT(RND * screeny)
  x2 = x1 + 40
  y2 = y1 + 40
  _PUTIMAGE , S&, temp&, (x1, y1)-(x2, y2)  'place partial image into page box
  xoff1 = INT(40 - RND * 81) + x1
  yoff1 = INT(40 - RND * 81) + y1
  xoff2 = INT(40 - RND * 81) + x2
  yoff2 = INT(40 - RND * 81) + y2
  _PUTIMAGE (xoff1, yoff1)-(xoff2, yoff2), temp&, 0    'place image on the screen
  _DISPLAY
  DO WHILE _MOUSEINPUT                'check for mouse movement
    mx = mx + _MOUSEMOVEMENTX
    my = my + _MOUSEMOVEMENTY
  LOOP
LOOP UNTIL INKEY$ > "" OR mx <> 0 OR my <> 0  'check for any key press
SYSTEM                      'close screen saver immediately
Code by DSMan


See also:



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link