Turn off Screen saver and monitor black out

Posted on 2006-11-12
Medium Priority
Last Modified: 2008-01-09
We have a VB.NET application that we would like to disengage the screen saver process and the monitor shutting off.  Any ideas?
Question by:ddepuemd
  • 2

Accepted Solution

deadite earned 500 total points
ID: 17925131
For the screensaver, you need to do some registry edits.  If you want to change it for all users, you'll need the following registry key:

HKEY_USERS\.DEFAULT\Control Panel\Desktop

You'll be interested  with the following values in this key:
ScreenSaverIsSecure=0   //0-No Password Required to Unlock Screensaver, 1-Password required to unlock screensaver
ScreenSaveTimeOut=600  //Time in Sec to wait before running screensaver 600=10min
ScreenSaveActive=1  //0-Disable Screensaver, 1-Enable Screensaver
SCRNSAVE.EXE"=logon.scr  //Screensaver name to use (default logon.scr)

If you want to disable the screensaver, set ScreenSaveActive=0.  From what you posted, this is what you want.  For example, here is a VBScript that does this:
Const HKEY_USERS = &H80000003

strComputer = "."

Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = ".Default\Control Panel\Desktop"
ValueName = "ScreenSaveActive"
strValue = "0"

objReg.SetStringValue HKEY_USERS, strKeyPath, ValueName, strValue

Now, if you want to do this for the user that is currently logged on, you can use the following registry key:

HKEY_CURRENT_USER\Control Panel\Desktop

and the values are the same as above.  Here is a VBScript that disables the screen saver for the currently logged on user:

strComputer = "."

Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "Control Panel\Desktop"
ValueName = "ScreenSaveActive"
strValue = "0"

objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
LVL 10

Expert Comment

ID: 17925142
You'll need to write some code to amend the registry.

The screen saver is at:
HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive  =  (set to zero '0' for off)

and the monitor settings is at
HKEY_CURRENT_USER\Control Panel\PowerCfg\PowerPolicies

The monitor settings are a little trickier as you may have several possible pollicies on your machine.
For example I use portable/laptop, so I'd amend the settings under this policy in the registry.
And the setting are in binary, so what I would suggest is (FIRST BACKUP YOUR REGISTRY) before doing anything !

I've never had to amend these settings before so don't know it in detail but there is another article on this at

to amend the registry use this code:

Dim KeyPath As String = "HKEY_CURRENT_USER\Control Panel\Desktop"
My.Computer.Registry.SetValue(KeyPath, "ScreenSaveActive", "0")

Hope this helps !

Expert Comment

ID: 17925157
Oops, missed the second part.  For controlling the Power settings for the monitor, here is an article describing the Keys and Values (almost the same as above for screen saver).  You can use the same technique described above, just change the key and value where necessary.


To save the extra click, here are the contents of the article:

If you select the Screen Saver tab of the Desktop control panel applet you can configure Power saving settings which include powering off the monitor after x minutes. To enable the monitor to power off for the logon screen perform the following on each machine:

   1. Start the registry editor (regedit.exe)
   2. Move to HKEY_USERS\.DEFAULT\Control Panel\Desktop
   3. Double click PowerOffActive and set to 1. Click OK
   4. Double click ScreenSaveActive and set to 1. Click OK
   5. Double click SCRNSAVE.EXE (if present) and set to "(NONE)" (don't type the quotes). Click OK
   6. Move to HKEY_USERS\.DEFAULT\Control Panel\PowerCfg
   7. Double click CurrentPowerPolicy and set to 0 (the Home/Office Desk power setting configuration). Click OK
   8. Close the registry editor
   9. Reboot the machine

To change the settings such as monitor timeout change the settings on your local profile, export HKEY_CURRENT_USER\Control Panel\PowerCfg\PowerPolicies\0 to a file and import to HKEY_USERS\.DEFAULT\Control Panel\PowerCfg\PowerPolicies\0.

If you need to do this on lots of machines create a .reg file and push via a login/startup script (which can be specified via Group Policy).

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
Article by: Shaun
Tiling windows is a great way to see multiple applications at once. Windows Tiler is a tool that automatically tiles open application windows as the open and close.
Six Sigma Control Plans
Loops Section Overview

587 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question