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.
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
- _MOUSEMOVEMENTX, _MOUSEMOVEMENTY
- SCREEN (statement), _SCREENIMAGE
- SAVEIMAGE (save image to bitmap program)