views:

56

answers:

4

Hi,

we would like to build a screensaver that shows the desktop and the running applications but prevents user input by showing the login screen. The idea was to build a windows app with no window or a transparent window. However, as soon as the screensaver gets activated the desktop and all applications are hidden from the screen.

Is it possible to start the screensaver without hiding the desktop?

Thx,

bja

+1  A: 

Why can't you just grab an image of the screen when the SS kicks off. Then use that as the backdrop of your SS.

Vista has a bubbles screen saver that just starts putting bubbles on the screen. Not sure how they do it.

taylonr
I think the purpose is to still monitor application activity while preventing any input to the console without supplying a password. There's a product called Transparent Screen Lock (http://www.e-motional.com/TScreenLock.htm) which claims to do this. But the question specifies "build a screensaver" rather than "buy a screensaver" so I'm not sure if that would satisfy the requirements.
David
Yeah, I can see that. I think the difficult part is going to be to prevent user interaction by displaying a login screen. I'm not sure there is an easy way to have the computer locked and displaying the desktop. In fact, it might not be possible from a security standpoint. I know I lock my screen SO THAT people coming in to my office while I'm gone can't see what's up there.
taylonr
Thanks for the comments. Yes, the idea was to have some monitoring tools on the screen while not allowing any input. "Buy a screensaver" was the the option if "build a screensaver" would have failed. :)
bja
+1  A: 

Is it possible for you to implement this as something other than a screensaver? I'm assuming that the Windows API does have a method that allows you to tell how long the computer has been idle (otherwise, how does the stuff that manages screensavers do it?), so if you use that you could just set up your application such that it's continuously running as a background process, and will pop up a modal dialog box (or your idea of a transparent window) or something that prompts for the user's login info when the computer has been idle for a certain amount of time.

JAB
Thanks, that seems to be the easiest way.
bja
+1  A: 

You are better off just creating a full-screen application with a transparent window that starts up on a timer like a screensaver. The screensaver functionality while similar to what you are doing, functions much differently.

Aaron Harun
A: 

As an alternative suggestion, you could always use a service (or background app) to gather the information you want these monitoring tools to display, or even just to grab periodic screenshots of the (hidden) desktop, and then have your screensaver query that app to get the data it needs to display.

That way, you get the benefit (the secure desktop, the usual Windows login sequence, etc.) of a screensaver, but still get to display what you need to.

Cerebrate