[THIN] KB: CTX113039 - A Screen Saver Appears in a Seamless Session When Idle

  • From: "Jim Kenzig ThinHelp.com" <jkenzig@xxxxxxxxx>
  • To: THIN <thin@xxxxxxxxxxxxx>
  • Date: Tue, 1 May 2007 14:02:24 -0400

CTX113039 - A Screen Saver Appears in a Seamless Session When Idle

This document was published at: http://support.citrix.com/article/CTX113039

Document ID: *CTX113039*, Created on: Apr 30, 2007, Updated: Apr 30, 2007

Products: Citrix MetaFrame XP 1.0 for Microsoft Windows 2000, Citrix
MetaFrame XP 1.0 for Microsoft Windows 2003, Citrix MetaFrame Presentation
Server 3.0 for Microsoft Windows 2000, Citrix MetaFrame Presentation Server
3.0 for Microsoft Windows 2003, Citrix Presentation Server 4.0 for Microsoft
Windows 2000, Citrix Presentation Server 4.0 for Microsoft Windows 2003,
Citrix Presentation Server 4.5 for Windows Server 2003, Citrix Presentation
Server 4.5 for Windows Server 2003 x64 Edition


*Symptoms*

When working in a seamless application, a screen saver appears after leaving
the session idle.

*Troubleshooting*

By design, Citrix disables screen savers for published applications. Active
screen savers can contribute towards a performance hit to bandwidth and
server resources in general.

*Important*: Citrix does not *prevent *screen savers from appearing in a
seamless session; it disables screen savers upon starting. This is
accomplished through wfshell when the session is started by calling
SystemParametersInfo( SPI_SETSCREENSAVEACTIVE, FALSE, 0,
SPIF_SENDWININICHANGE );

Custom code can be written to view or modify the screen saver status by
using the following Microsoft Windows application programming interface
(API) call:

SystemParametersInfo()

With the following screen saver parameters:

SPI_GETSCREENSAVEACTIVE
SPI_GETSCREENSAVERRUNNING
SPI_GETSCREENSAVETIMEOUT
SPI_SETSCREENSAVEACTIVE
SPI_SETSCREENSAVETIMEOUT

See Microsoft Knowledge Base article
315725<http://support.microsoft.com/kb/315725>
.

Custom scripts can be written for enabling/disabling screen savers using the
above API calls.

*Cause*

There is a Group Policy object (GPO) in the environment with a screen saver
parameter configured. If the GPO is modified while there are sessions on the
server, the GPO sets SPI_SETSCREENSAVEACTIVE = TRUE, causing any active
sessions to go into a screen saver when left idle.

The GPO setting can be found under *User Configuration >Administrative
Templates > Control Panel > Display*.

View the setting by double-clicking *Screen Saver*.

*Resolution*

Log off all active sessions and relaunch them. This sets the
SPI_SETSCREENSAVEACTIVE parameter in the session to FALSE again.

-Or-

Make sure all sessions are logged off the server before modifying any GPO
with the screen saver setting enabled.

*More Information*

*http://msdn2.microsoft.com/en-us/library/ms724947.aspx*

One example of code used is available from the CodeGuru developer Web site.

*http://www.codeguru.com/cpp/misc/misc/screensavers/article.php/c419/*


--
Jim Kenzig
Microsoft MVP - Terminal Services
http://www.thinhelp.com
Citrix Technology Professional
Provision Networks VIP
CEO The Kenzig Group
http://www.kenzig.com
Blog: http://www.techblink.com

Other related posts: