Wallpaper Cycler and Windows 7

When the beta of Windows 7 was released, I obviously had to install it to test Wallpaper Cycler on it. Wallpaper Cycler started fine, so that was a good start 🙂 However, when I wanted to cycle the wallpaper on the desktop, it changed the tiling setting on the desktop properly, but the wallpaper itself was not changed, bummer 🙁

Since Windows 7 comes by default with a very basic wallpaper cycler built-in, I thought that Microsoft had maybe changed the programming interface to change the wallpaper. I started to search on the internet for information regarding this, but didn’t find anything. So, I started debugging…

First, I wrote a small test application that used the same method for changing the wallpaper as Wallpaper Cycler is using and to my surprise it was working perfectly, meaning there was something wrong specifically in Wallpaper Cycler.

Since the new Wallpaper Cycler is more multithreaded than the previous versions, I thought there might be an issue with the initialization of the COM library using CoInitializeEx. Unfortunately, everything was fine with the initialization. Next step was to check if I got a proper IActiveDesktop instance and again, everything was fine. I did put a breakpoint and went step by step through the code of changing the wallpaper. Again, all initializations and calls on the IActiveDesktop instance succeeded with S_OK…

Out of ideas, I was staring at the debugger screen and then suddenly my eye fell on the name of the file to which Wallpaper Cycler was rendering the wallpaper which was called “c:\Users\marc\AppData\Local\Temp\\NuonSoft WPC Wallpaper.bmp”. Notice the double slashes. I thought by myself that that couldn’t be the problem. It hadn’t been a problem in all previous versions of Windows, but since I was completely out of ideas, I changed the double slashes to a single slash and like a miracle, cycling the wallpaper started to work perfectly on Windows 7. 🙂


Leave a Comment

Name: (Required)

E-mail: (Required)