Turn off Screen saver and monitor black out

We have a VB.NET application that we would like to disengage the screen saver process and the monitor shutting off.  Any ideas?
ddepuemdAsked:
Who is Participating?
 
deaditeConnect With a Mentor Commented:
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:
HKEY_CURRENT_USER = &H80000001

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
 
0
 
Kinger247Commented:
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
http://www.experts-exchange.com/Programming/Programming_Platforms/Win_Prog/Q_11139845.html

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 !
0
 
deaditeCommented:
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.

http://www.windowsitpro.com/Article/ArticleID/14918/14918.html 

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).
0
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.

All Courses

From novice to tech pro — start learning today.