Introduction
Sometimes I need a tool that could stop running the screensaver (for example, when I'm waiting for an important email message). I've looked over CodeProject and found some nice solutions. I gathered them together and spent 3 or 4 hours to write this small tool.
Features
- Enable/disable screensaver from the taskbar
- Restore original state of screensaver on exit
- Restore icon in taskbar after Explorer crashes
- Easy access to Control Panel -> Desktop Settings
Implementation
At the base of this project is Chris Maunder's System Tray class and the Win32 API SystemParametersInfo
function.
To start with, I created a WTL Dialog-Based Project and then removed MainDialog
, and added a main window class inherited from the CWindowImpl
class. To implement check boxes in the popup menu that shows when the user right-clicks in the taskbar icon, I needed to inherit my own class from CSystemTray
. Its virtual function CustomizeMenu
was rewritten. Then, I added some SystemParametersInfo
calls, including CLimitSingleInstance
from Microsoft. Some modifications were made in CSystemTray
.
Acknowledgments