Why do screensavers hate me?
May 22, 2008 12:29 AM   Subscribe

Is there a clever way to figure out what's telling screensavers to exit as soon as they launch? (Windows XP SP2)

After a reboot, screensavers work as expected -- they start after X minutes of idle time and exit when there's keyboard or mouse input. But after a while -- half an hour, a couple of hours, a day -- they exit immediately after starting, as if someone were smacking the keyboard the moment the screen flickered. Then after another X minutes, they try to start again, and immediately exit. Cycle forever. Then after a reboot everything works properly again.

I've tried changing screensavers, unplugging input devices, checking what's running when the problem occurs -- there's no consistent pattern to it except that screensavers work for a while, then don't. The only exception: even after this behavior kicks in, screensavers previewed in Display Properties work as expected, running until there's actual mouse or keyboard input. So if some rogue device or process is sending ghost input events, the screensavers only see it when they've been launched due to a period of idle time.

Is there any better way to figure what's telling these things to exit? Maybe some kind of instrumented "test" screensaver that'll log the events it receives so I can figure out what's telling it to close?
posted by Lazlo to Computers & Internet (10 answers total)
 
Is there anything in the Event Log?
posted by grouse at 12:43 AM on May 22, 2008


Response by poster: Nothing that seems relevant.
posted by Lazlo at 1:21 AM on May 22, 2008


Are you sure you're not being remote-viewed? Try netstat and look for connections on ports 5900 (VNC) or 6129 (Dameware).
posted by flabdablet at 3:26 AM on May 22, 2008


When you click the "Preview" button in display settings, it does almost* exactly the same as when it's triggered by the time-out, so I find it odd that you say that it works this way and not the other.

Just a gut feeling, but I'm guessing this is down to your mouse. I know you said you tried it with this unplugged, but I have seen a similar problem before where optical sensors in the mouse get "confused" and think there is movement when there is none, due to patterns on the surface used.

* A screensaver is just an .EXE file. When run in preview mode it passes a /P command line. Screensavers are responsible for terminating themselves when they detect mouse or keyboard input, and I haven't seen any that handle this differently when given the /P switch compared to otherwise.
posted by jon4009 at 5:10 AM on May 22, 2008


Do you run a fan in your office? Does the fan in your computer have significant vibration? Do you, or a neighbor, play loud or bass-heavy music?

This could be the result of the system fan, since it appears related to system uptime, which is related to how hot the system gets. Try putting the computer on a piece of foam or carpet or a pillow or something similar that would cushion and absorb vibrations and see if this continues. If it does, clean your system fan with compressed air and/or replace it.
posted by notashroom at 6:53 AM on May 22, 2008


If you really must solve this problem, and the other suggestions don't work, one way would be to take one of the Win32 screensavers with source code out there and modify it so that it logs the reason for quitting. Essentially to write the "test" screensaver you mention. Although that seems like more trouble than it's worth.
posted by grouse at 7:46 AM on May 22, 2008


sometimes those random ass bubbles in the lower right like "update available" and "unused icons on your desktop" will have this effect. But then I guess you probably would've noticed them appearing...?

For me though, as said above, this sometimes happens because some vibration moved the mouse a little bit.
posted by drjimmy11 at 8:31 AM on May 22, 2008


If you have Visual Studio installed, you can use Spy++ to see if the screensaver is quitting due to a WM_MOUSEMOVE or WM_NCMOUSEMOVE message, or something else. Winspector supposedly has the same features, and is free, but I've never tried it.
posted by suncoursing at 9:58 AM on May 22, 2008


This is a long shot, but do you have any scheduled tasks set to run after X minutes of idle time?
posted by Lanark at 12:30 PM on May 22, 2008


Response by poster: Thanks for all the responses. In order:

* I'm not being remote-viewed -- everything in TCPview is legit and accounted for, and I'm well-firewalled (hardware AND software).

* There are no fans involved, or loud noises, or any other circumstances that would be causing things to move. (And if it were caused by motion, I'd expect the motion to prevent the screensaver from firing in the first place.)

* There are no popups or notifications during this period. I do have cron running, but that fires at the top of the minute, whereas the screensavers will fire and fail immediately no matter where in the minute they launch.

I'll check into Winspector & post back if I have any results.
posted by Lazlo at 8:58 PM on May 22, 2008


« Older Better quality Taxi Driver image needed!   |   Fat guy on a little bike? Newer »
This thread is closed to new comments.