Click here to Skip to main content
Licence CPOL
First Posted 6 Jul 2006
Views 16,324
Downloads 592
Bookmarked 17 times

ScreenSaver Manager - An example of using the SystemTray class in WTL

By | 6 Jul 2006 | Article
Managing screensaver activity from the Taskbar.

Sample Image - ssman.gif

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

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Eugene Podkopaev

Web Developer

Russian Federation Russian Federation

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
-- There are no messages in this forum --
Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120517.1 | Last Updated 7 Jul 2006
Article Copyright 2006 by Eugene Podkopaev
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid