The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.

    Why does Microsoft make it so difficult?

    Discussion in 'Windows OS and Software' started by Bart Simpson, May 24, 2008.

  1. Bart Simpson

    Bart Simpson Notebook Consultant

    Reputations:
    213
    Messages:
    226
    Likes Received:
    0
    Trophy Points:
    30
    Seeing some recent threads on Dreamscene for Vista Ultimate, I got to thinking that it would be easy to recreate Dreamscene using the core code for my Video in Picture application. I could already display video in a borderless container and I can make it transparent to all input. All I needed was to send my application window to be in front of the desktop background but beneath the desktop icons.

    I thought it would be so easy since I already know the functions to change window orders in C# and I also got the handle to the desktop icons that allow me to manipulate them. Well, I tried everything I know and then some from crawling the web for code. No matter what I did, I could not place my application window beneath the icons to fully replicate Dreamscene. Why are you keeping this functionality to yourself, Microsoft? Release an API to let people better manipulate the desktop icons.

    Looking on the web, I see that there is workaround using Active Desktop if you have Windows XP or lower but we are using Vista here and Active Desktop no longer exists.

    I think I have a couple more tricks I can pull before I'm out of ideas. The first is to try to see if I can capture all redraw events for the desktop background and replace it with my own window. The second is I want to see if people know how Microsoft coded Dreamscene.
     
  2. JCMS

    JCMS Notebook Prophet

    Reputations:
    455
    Messages:
    4,674
    Likes Received:
    0
    Trophy Points:
    105
    Because they don't want people to reproduce it? They making an application especially for people who "bought" ultimate. They are not gonna make it easy so one can make it and distrute it to everyone else
     
  3. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    That should be easy enough to do. Consider those apps that show realtime stats on your computer in the background. They obviously render to the background desktop on the fly.
    Only trick is figuring out how. :p
     
  4. surfasb

    surfasb Titles Shmm-itles

    Reputations:
    2,637
    Messages:
    6,370
    Likes Received:
    0
    Trophy Points:
    205
    +1 for Ultimate. That's one reason to buy it.
     
  5. Bart Simpson

    Bart Simpson Notebook Consultant

    Reputations:
    213
    Messages:
    226
    Likes Received:
    0
    Trophy Points:
    30

    That's no problem, I can code that. The problem is Microsoft broke the ability to put your application behind the desktop icons. Before, you could use RedrawWindow() with a flag for no redrawing of the background, but that has been broken in Vista for no good reason.
     
  6. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    My point is that those stats are also behind the desktop icons. (or are you saying that those apps don't work under Vista either?)

    In any case, intercepting the redraw messages for the desktop is probably your best bet, yeah.
    Looked into subclassing the desktop? (Might have to dip into native code for some of this)

    As for figuring out how Dreamscene works, is it written in managed code? If so, tools like Reflector should get you a lot of the way (but you probably know this). For native, you could use Spy++ to at least see which Windows messages it uses.
     
  7. Nocturnal310

    Nocturnal310 Notebook Virtuoso

    Reputations:
    792
    Messages:
    2,708
    Likes Received:
    0
    Trophy Points:
    0

    Vista Ultimate is the Ultimate Priced OS...

    If u r a serious Windows user then u will realise VLC gives u a 3 times better Dreamscene for free.

    Windows is all about being creative with available resource.
    I have Vista Basic...and it has more features than Ultimate because i used all 3rd party stuff.

    Thats the beauty of Windows.



    P.S: My post is relevant to your Topic title but not your problem. :D as i am a Coding n00b
     
  8. timtravel42

    timtravel42 Notebook Virtuoso

    Reputations:
    827
    Messages:
    2,004
    Likes Received:
    1
    Trophy Points:
    56
    hehe thats how i see it too :p
     
  9. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    How can it be a reason to buy it though, if the OP can make the same functionality available for free? ;)
     
  10. Bog

    Bog Losing it...

    Reputations:
    4,018
    Messages:
    6,046
    Likes Received:
    7
    Trophy Points:
    206
    Dreamscene uses too much of my CPU. It consistently hangs around 30%. Thats unreasonable.
     
  11. Pai

    Pai Notebook Evangelist

    Reputations:
    464
    Messages:
    657
    Likes Received:
    0
    Trophy Points:
    30
    It is a reason to buy when you can get it for $20 dollar through University shop. ;)
     
  12. surfasb

    surfasb Titles Shmm-itles

    Reputations:
    2,637
    Messages:
    6,370
    Likes Received:
    0
    Trophy Points:
    205
    Looping a video at full screen takes up 30% of your CPU cycles? Sounds about right to me?

    Oh you mean you'd rather have it idling otherwise so you can use it for something else.

    I personally like wallpaper that is randomly changed. I use SexyDesktop Wallpaper Management Software from my favorite wallpaper site.
     
  13. Bart Simpson

    Bart Simpson Notebook Consultant

    Reputations:
    213
    Messages:
    226
    Likes Received:
    0
    Trophy Points:
    30
    I know that in XP you can place windows behind the desktop icons using RedrawWindow() but for some unknown reason (and not documented), Microsoft has broken this. I haven't seen an app in Vista that places itself behind the desktop icons and I have been looking at quite a few examples from Codeproject. I would be interested to see something that would put it behind the icons, especially if you have the source code.

    I haven't found a way to intercept redraw messages for the desktop. Do you have some example code? Preferably in C#.

    Since Dreamscene is proprietary, I have no idea if it is written in managed code or even what method they use. Even if it is managed code, I have Vista Premium so no Dreamscene for me.

    For the other posters: I have tried lots of other Dreamscene clone software out there on my Vista Premium laptop and they all either don't work on Vista because of the problem I mentioned above or they work really crappy. For example, when you set VLC to desktop mode, it disables Aero and renders desktop icons really ugly. Like 16-bit ugly. If I get the issue of putting my program behind the desktop icons fixed, I will post it for free. It will be a much better solution than anything else that is free.
     
  14. Bog

    Bog Losing it...

    Reputations:
    4,018
    Messages:
    6,046
    Likes Received:
    7
    Trophy Points:
    206
    For clarification, I think that the idea for Dreamscene is great; I especially like the glowing Vista orb. But, constant 30% CPU usage isn't very reasonable when you're a laptop user.
     
  15. Wirelessman

    Wirelessman Monkeymod

    Reputations:
    4,429
    Messages:
    4,401
    Likes Received:
    0
    Trophy Points:
    105
    I agree, it slow down everything.
     
  16. ScuderiaConchiglia

    ScuderiaConchiglia NBR Vaio Team Curmudgeon

    Reputations:
    2,674
    Messages:
    6,039
    Likes Received:
    0
    Trophy Points:
    205
    But doesn't it go idle when another app comes full screen?

    Gary
     
  17. Bog

    Bog Losing it...

    Reputations:
    4,018
    Messages:
    6,046
    Likes Received:
    7
    Trophy Points:
    206
    No... does the animation stop when an application goes full-screen?
     
  18. rsly33

    rsly33 Notebook Consultant

    Reputations:
    76
    Messages:
    175
    Likes Received:
    0
    Trophy Points:
    30
    Its supposed to

    Also, to the OP, there are plenty of tutorials of how to get Dreamscene on a non-Ultimate system.
     
  19. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    Hmm, if I can find the time, I might try poking around with it one of these days.
    In any case, in native code at least, window subclassing is a well known technique for hooking into other windows and handling their messages, and as far as I can figure out, it should still work on Vista.
     
  20. daniel_g

    daniel_g Notebook Consultant

    Reputations:
    299
    Messages:
    282
    Likes Received:
    0
    Trophy Points:
    30
    I think microsoft should sell dreamscene unbundled, like for 5 or 10 bucks.