Lazy man’s Desktop Aurora

The wonderful Dave Vronay from Microsoft’s UX team has submitted this great tip to me after constantly nagging him about Desktop Aurora. With a bit of persistence, it has finally paid off. With this practical yet simple method, you can emulate the look of Desktop Aurora without any system modifications or heavy impact on performance. However, it must also be said that this approach is very flawed, as it has several downsides that makes it impractical to use for extended periods of time. But who cares, you can only get so much of eye-candy anyway.

Desktop MystifyDesktop Aurora

The concept is extremely simple. Run a screensaver on the desktop. But with the added power of DWM, you can get all the cool Glass effects on top of the screensaver, so it’s just like a real wallpaper. Screensavers has always supported the ability to be called to render on any surface to assist in development. But we can also utilize this method to create an interesting desktop background effect.

As you can see, the results can look stunning on a Glass-abundant application such as the “Gadgets Gallery” with some modifications to the original Vista screensavers.

How to do it

Automatic method

Blog reader Nate, has coded an application which automates the entire process. His application gives you an extremely easy way of selecting the screensaver desire, and makes it even possible to start the screensaver rendering on startup. You can download Nate’s application here.

Screencast

You can watch a screencast showing you the steps you need to take to achieve the same result.
Lazy man's Desktop Aurora screencast
Click to image to view video (H.264, 2:48min)

Manual method

Otherwise, if you feel confident, you can follow these steps below.

  1. Boot into Windows Vista, obviously
  2. Open the Spy++ tool, which is used to assist in software debugging. If you don’t have a copy, download it here.
  3. Use the “Window Search” icon, which is the binoculars icon in the toolbar.
  4. Drag the “Finder Tool” on to the desktop. The area surrounding the desktop should be bordered. Release mouse. Click “OK”.
  5. An item called “Folder View” should now be highlighted in the main window. Go up 2 parent items, and find “Program Manager”.
  6. There should be a bunch of characters on the left like “0002010C”, record this set of characters.
  7. Open the Hex to Decimal converter (http://www.easycalculation.com/hex-converter.php)
  8. Insert your set of characters into the “HEX value” box. Copy the resulting “Decimal” value. This is your “Handle ID”.
  9. Open command prompt. Type in “[Vista Drive]:\Windows\System32\mystify.scr /p [Your Handle ID]”, you might end up with “D:\Windows\System32\mystify.scr /p 131340”. Click Enter.
  10. Enjoy

To stop the desktop screensaver, simply launch Task Manager and find the screensaver process, then end the process.

You can also replace “mystify.scr” with any screensaver you desire. The Ribbons (ribbons.scr) works too. Aurora (aurora.scr) can be pretty bland. The Windows Energy (SSBranded.scr) can be quite intensive, but looks pretty cool. Bubbles (bubbles.scr) won’t work well.

Whilst the result is fancy for a few minutes, it becomes impractical because the desktop icons are overlapped by the screensaver rendering. But since DWM renders on top of the screensaver, you get all the fancy translucent effects with the screensaver.

I suspect the ‘real’ Desktop Aurora will use a better implementation of rendering, as well have a ‘quieter’ animation than screensavers to ensure it does not distract the user from more productive work, like Solitaire.

60 insightful thoughts

  1. Now that’s a spicy meatball!!

    Good work, will have to give it a try (until the real thing turns up.. roll on 2007).

  2. This isn’t really new…. I did something similar with the winsat commands.

    Basically, I went to DOS, typed “winsat aurora” and then hit my “Window Key” which made the taskbar, start menu, etc come up.

    I could then run apps from there.

    Just my $.02

    BTW: I was told on Neowin’ forums that this wasn’t new. ;-/

  3. @Zeromus2003: When you do “Winsat Aurora”, nothing is transparent. The theme is turned back to Windows Basic. So you don’t get any transparent windows or blurring. This is much different.

  4. You know, I just tried winsat again, and you were right, no transparency. I apologize.

    Now one has to ask, is it possible to use your method to work with that winsat test?

    Very curious…..

    I think the winsat aurora gives you the “best” representation, based on everything written about the feature. (although glass enabled would be nice)

    Lets hope that we can see a preview of these Vista Ultimate Extras soon. I have confidence that if anyone knows/sees it, you will.

    Thanks!

  5. No Zeromus2003, you wouldn’t be able to do this with the Winsat test as far as I know.

    It is only possible to do this with the screensavers because the ability to give an option to render the screensavers on any surface is already built into the screensaver functionality.

    To make an application like Winsat render onto a surface like the desktop will involve some hacking, unless of course, the feature is built-in and undocumented.

    But the Winsat Aurora isn’t the most subtle Aurora animation. It could become quite distracting on the desktop.

  6. I think it’s worth mentioning that the screen saver will think it’s running a small preview as it would be in the display properties, so it MIGHT not display as it would when running full screen.

    Pretty cool hack though, I’ve developer screensavers before and never thought about playing with /p.

  7. It works fine on Windows XP too (just change “mystify.scr” with “ssmyst.scr”)

    After running for a few minutes there’s minimal system performance hit, using only 1 second of CPU time, but it does bump up CPU% usage by a noticable amount.

    I guess if you’ve got quad-cores you could leave it on a core not doing anything.

  8. Long,

    I just tried a test… I downloaded System ScreenSaver 2.0 (which allows commands to be ran as screensavers) and I confiugred it with the following settings:

    “C:\windows\system32\winsat.exe” aurora

    then, I went to a DOS prompt and typed: c:\windows\sytem32\systemscreensaver.scr /p 65748 and hit “Enter”

    The funny thing is, the command didn’t produce an error, but sadly, it didn’t kick off the winsat test either ;(

    The reason for this post is to challenge someone to try and get this to work…it may never work since DWM gets disabled during the test.

    I apologize again, if this seems pointless, but I like the effect and would love to see it with glass enabled. Thanks!

  9. I get an error when trying to run any of the screensavers mapped to the “Program Manager”. 🙁
    I can map it to the root (Desktop) but it paints over the desktop items, anyway pointed the photo screen saver to the wallpapers directory and set it to pan and zoom…..

    Looks great but i now feel a little sick! :S

  10. WOW fast work…
    Nice app love the fat borders, thanks. 😉

    Worked out what the problem was, I have 2 monitors and it’s not too happy about it. Odd.

  11. On a side note, I’ve noticed a small bug with Glass, if you drag a window around you’ll notice that is like a 5px-8px border area around the window where the animation is drawn a split second ahead of the actualy background.

  12. This is indeed cool; the rumors start to become reality after all lol, Let’s hope at least some of the other rumors are also true.

  13. Nice, but I miss desktop icons… Is there a way to make screensaver run just like a normal wallpaper, i.e. beneath icons?

  14. Nice tip. I’m using the Automatic method, and I selected the Windows Energy screensaver. The results are quite stunning, except that it’s strange the window doesn’t stretch all the way past the taskbar. :/

    My CPU usage is also taking a small hit: it stays at roughly 10%. (This is on a Athlon64 X2 3800+ CPU.) It still looks nice though.

  15. @rm20010: Try the manual method, you will be able to get it stretch to the taskbar. I think Nate’s implementation might be incorrect.

  16. That did the trick. Thanks. Is there a way to get this to start each time Windows boots without using the AnimatedDesktop tool? Seems like when I rebooted Explorer the Handle ID changed.

    Something funny to try for AnimatedDesktop: if you activate the desktop and have an Explorer window open it mistakenly animates the window itself.

  17. Those who are not getting the same result with my app they do with the manual method, could you try re-downloading the zip file and running the latest version?

    There is no official way (AFAIK) to find the window handle we are looking for. It’s not the real desktop handle, which you can get with GetDesktopWindow. It’s a window that sits on top of that. But it’s not even that straight forward; sometimes its a SysListView32, sometimes its a SHELLDLL_DefView, etc. I’ve tweaked a few things to try to handle all this. Let me know your results.

    If it’s still not working and you can take a screenshot of the bottom of the Spy++ read out with the nodes expanded, that should help.

  18. Hmm… still doesn’t work.

    The Handle IDs are as follows (in hex):

    – 000100CA “Program Manager” Progman
    — 00020086 “” SHELLDLL_DefView
    —— 0002008A “FolderView” SysListView32
    ——– 0002007C “” SysHeader32

  19. If you’re talking about which handle Spy++ highlighted after using the Find Window tool, it’s 0002008A “FolderView” SysListView32.

    Looks like after booting back into Vista the handles changed again. :\

    – 000100CC “Program Manager” Progman
    — 000100CE “” SHELLDLL_DefView
    —— 000100D0 “FolderView” SysListView32
    ——– 000100D4 “” SysHeader32

  20. I think I might know what’s wrong with your program:

    it’s using the “FolderView” SysListView32 handle OR the “” SHELLDLL_DefView handle when it should be using the “Program Manager” Progman handle. I tried using the manual method on both those handles and got the same results as your program.

  21. I figured it out. If you have desktop icons showing, the proper target is SysListView32. If you have desktop icons hidden, the proper target is SHELLDLL_DefView. I have uploaded a new build that takes care of this. It also fixes the desktop icons flashing through the screen saver (same problem).

  22. Still doesn’t work properly. :\

    I’ll just have to keep finding the ever changing handle IDs using Spy++ and using the manual method. Thanks anyways.

  23. @Nathan Wienberg: Feel free to put it on Soapbox.

    @Larry Osterman: Of course it works on XP. It’s a supported feature of screensavers since they’ve been introduced. But it’s not as exciting on XP as you don’t have Aero Glass.

  24. Is there anyway to enable so the screen saver, and desktop icons show at the same time =s

    ????

  25. Pingback: [email protected]
  26. I tried this on XP, and noticed since the taskbar overlays the screensaver, so should the toolbars you can add to it. So I created a new toolbar, by rightclicking on taskbar, toolbar, new toolbar and created one with the directory of my desktop. I then unlocked the taskbar and moved to a suitable position, and what do you know? It works.

  27. well, this is all nice but it does not work for dual screens -_- a message appears saying something like functionality not supported. works fine when second display is disabled though.

  28. I have got a dual monitor setup and have gotten past the error about the functioanlity by manually using

    c:\Windows\System32>aurora.scr /p 65764 -fullscreen

    This doesn’t get it working on both monitors, however, it does get you past the error message about the funcionality.

    I tried it with the bubbles.scr and it changed the display scheme to Vista basic and the bubbles began to come out slowly (and quite small) and spread across both monitors. The drawback to this was that the secondary monitor had changed its resolution to something odd.

    c:\Windows\System32>bubbles.scr /p 65764 -fullscreen

    btw…I am running a Radeon X850XT Platinum Edition on Vista RTM from MSDN

    I am also having fantastic results when I turn off my second monitor.

  29. I have managed to have both monitors in use while having my primary monitor with the ‘motion desktop’.

    I had to disable my secondary monitor via the display settings window, execute the manual command line as above and then re-enable the secondary monitor. I was hoping to get the motion on both monitors but instead it came back up with my default wallpaper.

    As a side note…

    Vista will not execute the screen savers automatically on my machine when idle time expires. They will however run on both monitors when I perform a preview or launch them independently.

    Thought that might help in the furthering of dual monitor support…

  30. Pingback: Computerhilfen.de
  31. Pingback: www.vistablog.at
  32. This feature only works on the native .scr files in Vista. It won’t work on animated .scr files that are not native to Vista. (at least Home Premium) I have several animated .scr files and I can’t figure out the work-around to get the animation to render

  33. Reviving what I guess is a fairly old thread….

    I have the opposite problem to everyone else here – dual monitors work flawlessly both with the manual method and nate’s tool….but I want if possible only to have this going on my main screen (as I tend to keep all my icons etc on the second screen, plus, having it running there while i’m working on the main screen is distracting as hell). Any ideas?

    Also, vista’s included screensavers are kinda crappy…….it seems, unfortunatly, though, that Steve’s right about screensavers other than those that come with vista working – again, any ideas anyone? On a side not, even some of the ones that do come with vista don’t seem to work either, if that helps…

  34. neither the automated way nor the manual method enable the screensaver/wallpaper to run at windows startup, although the automated method provides a checkbox for that option. i get an error message stating that i need a newer video card or one that has support for the latest D3D. any help?

  35. Thankyou very much Nate for the fix. Works great. I have just one problem. I have the My pictures Screen saver enabled, but it keeps looping the first 10-15 photos only not my whole directory Is there a way around this

  36. Hey, I’m really excited about this program. This is something completely new for me. I’ve been running dreamscene from Vista Ultimate, but it didn’t flow very well when it restarted the ‘movie’. Additionally, Dreamscene would take up too much of my CPU power.

    Anyways, the purpose of my post is to ask if this software works with 3rd party screensavers, say, something i downloaded off the internet??

  37. Can someone tell me exactly how to do this?

    to install flowBubbles:

    1.just copy flowBubbles.scr to system direction. for example, c:\windows\system32
    2.press right button of mouse on flowBubbles.scr, select install,test,set from popup menus you like.

    Options:
    1. Bubbles num defines how many bubbles will disappear when screensaver run.

    2. Bubble size defines the radius size of the bubbles.

    3. Show Shadow defines if the bubbles have a shadow or not.

    4. Sound Open defines if open the sound effect. the sound is play when bubbles crash together.

    5. Picture settings defines the background image. You can use the default image, desktop image or select a picture as background

  38. [code]
    ‘——————————————————————————
    ‘ Launch Screensaver as Desktop Wallpaper!
    ‘ Created by Cyberkilla
    http://futurerp.net

    ‘ You are free to use this was you wish, however, you must acknowledge that
    ‘ this script is released as is, and I am not liable for any damages or
    ‘ problems as a result of this script.

    ‘ KNOWN ISSUES: It paints over your desktop icons, and I can’t fix that here.
    ‘ I’m sure this can be replicated in other programming languages, and a
    ‘ transparent file explorer control showing the desktop would probably fix
    ‘ this limitation.

    ‘ The script uses a small utility called cmdow.exe to find the desktop’s
    ‘ window handle. Google it.
    ‘——————————————————————————

    Sub DoTheMagic(strCommand2)

    Set StdOut = WScript.StdOut
    Set objShell = CreateObject(“WScript.Shell”)
    Set objScriptExec = objShell.Exec(strCommand2)

    stdOut = LCase(objScriptExec.StdOut.ReadAll)

    If len (stdOut) > 0 Then

    Dim stdArray1,stdArray2,stdArray3
    ‘cmdow.exe outputs two lines, so we split it.
    stdArray1 = Split(stdOut,chr(13))
    ‘Next, we split the second line along the spaces – the first element in array is the handle in hex format.
    stdArray2 = Split(stdArray1(1))
    ‘Finally, I split again to remove the 0x, so we are left with only the hex value itself.
    stdArray3 = Split(stdArray2(0),”x”)
    ‘Convert it back from a hex.
    programManagerHandle = CLng(“&H” & stdArray3(1))
    ‘msgBox(“Handle is: ” & programManagerHandle)

    ‘Execute whatever screensaver you want to see:)
    ‘Use Task Manager to stop it running.
    ‘objShell.Exec(“C:\Windows\System32\mystify.scr /p ” & programManagerHandle)
    objShell.Exec(“C:\Windows\System32\aurora.scr /p ” & programManagerHandle)
    ‘objShell.Exec(“C:\Windows\System32\ssBranded.scr /p ” & programManagerHandle)

    End if
    End Sub

    Dim strcommand
    strCommand = “cmdow “”Program Manager”””

    Call DoTheMagic(strCommand)
    [/code]

  39. I have tried a lot of things from a lot of sites……………..but i cant run any 3D rendered screensavers(eg. Deepspace by 3dplanetsoft) as desktop wallpaper in vista ultimate 32 bit.

    please help……….i’m a power user…………i can do complicated stuff so dont hesitate……

  40. AnimatedDesktop works well, though I experience problems when the desktop is locked and then I unlock it / wake up my laptop from hibernation/etc. When any of this happens, the desktop background stays black (AnimatedDesktop prog is still running), and I then have to disable AnimatedDesktop and then re-enable it to restore the screensaver background. I suspect this having to do with logon screen/Aero re-loading after logging in to the workstation after being locked/woken up from hibernation. Does anyone have a fix/solution/suggestion for this? Thanks a lot.

  41. hey
    if somebody has the animateddesktops file, i would LOVE to have it
    i used to have it and lost it when my computer crashed and have been looking for it on and off for months
    my email is ryanhelper [at] gmail [dot] com

    thanks!!

Comments are closed.