SS A Screen Saver Utility For Windows 3.0 Version 1.4 January 24,1991 Copyright 1991 Tom Wheeler [72037,1742] The programs and documentation contained herein are hereby placed in the public domain. You may use any portion of this material as you see fit for your own personal use provided no part of anything contained herein is used or distributed commercially. This material may not be distributed unless all modules listed below are included in the final distributed version: LIBENTRY ASM 2481 11-02-90 9:21p README TXT 5615 01-24-91 8:33p SAVE BMP 8310 11-01-90 9:59p SS C 23307 01-24-91 2:23p SS DEF 433 01-24-91 10:30a SS DLG 1556 01-24-91 8:01p SS EXE 21248 01-24-91 8:01p SS H 1231 11-02-90 7:34p SS ICO 766 10-13-90 11:33a SS MAK 2250 01-24-91 7:51p SS RC 926 11-02-90 6:17p SSHOOK C 4828 11-02-90 9:16p SSHOOK DEF 331 11-02-90 9:21p SSHOOK DLL 2112 01-24-91 7:50p SSHOOK MAK 2173 01-24-91 7:49p SSHOOK RC 973 10-11-90 8:42p No claim of suitability of use is made for these programs. The user is solely responsible to determine whether or not these programs perform properly on any given computer system. The use of this program is quite simple. Execute the program "SS.EXE" by any means desired from within Windows 3.0. Make sure that the dynamic link library "SSHOOK.DLL" is available in the directory the program is being executed from or that it is placed in a directory that can be located with the "PATH" environment variable. The program initializes as an Icon and cannot be maximized. Click on the Icon to select its system menu and choose the "Time" menu option to set the Activation Time of the Screen Saver. The Activation Time is initialized to 10 minutes the first time the program is run. Enter the desired Activation Time and click "Save" to permanently save this value or "Cancel" to abort. This value will be recorded in your "Win.Ini" Windows initialization file and will be used every time that "SS" is run until changed again. "SS" detects keystrokes and mouse movements. If "SS" detects that no keys have been pressed or that the mouse has not moved within the period of time defined by the Activation Time, the screen will blank and a graphic icon will be randomly moved around the screen until either a key is pressed, the mouse is moved, or a mouse button is clicked. "SS" cannot detect keystrokes entered in a DOS application running under Windows so it is possible that the screen will be blanked if you are running a DOS application in a Window. Full screen DOS applications do not experience this problem. This program was written as an experiment to try out various Windows functions, primarily the use of the SetWindowsHook function, bitmap manipulation, and the creation of a DLL (dynamic link library). The make scripts were generated using the PWB (Programmers Work Bench) included with Microsoft C 6.0. The program was compiled and linked with Microsoft C 6.0 and Link 5.1. ========================= VERSION 1.4 ========================= As stated above, SS was primarially written as a programming exercise. Due to the suprising number of downloads, however, I have decided to create this release to fix some problems noted by many of you. Previous versions had problems capturing mouse input cleanly. It seems that this is quite a trickey problem under Windows. This version attempts to correct subtle problems encountered previously. Formerly, SS set an internal timer to determine when to sample mouse input. Upon expiration of the timer, it would start capturing mouse input for all of Windows to determine if the system was idle or not. Mouse capture would not be released until either some mouse or keyboard activity was detected, or when the screen was actually blanked. Although this was reliable for most purposes, it could cause windows, menus, scroll bars, buttons, etc. to momentarially loose some messages. This would result in strange behavior such as a menu or scrollbar "freezing", a double click to be missed, etc. This version takes a totally different (and I hope safe) approach to looking at mouse activity. The mouse timer now expires once a second. When this happens SS looks to see which window is currently active. The active window is then "sub-classed" (for non-programmers, this is a technique of capturing a windows messages). At this point, all messages can be filtered and mouse movement and mouse buttons can be sampled while the mouse is active within that window (which is usually most of the time). The only problem I am aware of with this release is its inability to detect keystrokes in a DOS application when running in 386 Enhanced Mode (if you are running in Real or Standard Modes it is meaningless to try to detect DOS keystrokes anyhow). If anyone out there knows of a technique to do this, I would greatly appreciate hearing from you.