4 Oct, 2011
Wallpaper Cycler WCL WPC
Now that my book is finished, I finally have some time again to work on my development projects, and I re-started development on Wallpaper Cycler.
There are a couple of major issues that I have identified with the current released version of Wallpaper Cycler. Because of those issues, my first idea was to start designing a new version of Wallpaper Cycler from scratch. After thinking a bit about that, I changed my mind. It will be too much work. Instead, I will rewrite parts of the current version of Wallpaper Cycler from scratch to make it more robust.
Right now, I can think of the following major issues. Each item contains a solution that I’m thinking of implementing to fix the issue.
- The image loading code is not as robust as I would like it to be. It’s error prone, and crashes on certain files. To resolve this issue, I will throw away all current image loading code and rewrite it all. The result should be more robust, more resilient to corrupt image files, and more flexible. It will also support new image formats, but I don’t know yet exactly which formats. If you have image files that cause Wallpaper Cycler to crash, you can always send them to me.
- The current WCL file format often gives problems. These problems are especially noticable with big wallpaper lists (> 10.000 wallpapers). Because of the issues with the file format, Wallpaper Cycler sometimes corrupts the WCL. To resolve this issue, I will throw away all WCL saving and loading code and replace it with a completely new file format. Just as with the image loading rewrite, the result will be more robust, more flexible, and hopefully more performant.
- Too complex/confusing UI. Wallpaper Cycler has a lot of features. Unfortunately, the result is that the user interface is not always easy to use. Some people simply get lost in the user interface. To start resolving this issue, I’m thinking of replacing the toolbars with a modern, context-sensitive, ribbon bar. I’m also thinking of including an option to choose between a Basic UI and an Advanced UI. In the Basic UI, certain less used option are not shown or burried deeper away, as to prevent them from cluttering up the UI.
- The layout editor is often cause of frustration. The current layout editor has a number of usability issues. I don’t have any concrete solutions yet, but I need to find some solutions to try to make it much more user friendly, at least for basic layouts.
2 Jul, 2009
Finally, Wallpaper Cycler 3.6.0.180 has been released today 🙂
Wallpaper Cycler 3.6.0.180 has a lot of new features and bug-fixes. Some of the major new features include:
- Full High DPI support.
- Support for Windows 7.
- Support for 64 bit Windows.
- Automatically rotate JPEG images based on camera orientation.
- Option to manually rotate individual wallpapers.
- Automatically assign a default tag to new wallpapers.
- Option to automatically rerender the wallpaper on resuming from standby or hibernate.
- New option “Cycle wallpaper when display settings changed”.
- Folder synchronization will detect new folders.
- More advanced Preview Window.
- New Wallpaper Cycler Controller tool.
- New Info Panel replaces the old Information Bar.
- Align images inside wallpaper objects on layouts.
- Layout objects now have an option ‘visible’.
- High color toolbar images and menu images.
- Multithreaded rendering.
- New HTML renderer for text objects in layouts.
- Option to generate only sensible aspect ratio tags.
- Layout changes in the editor can now be discarded.
Get a full list of all the changes.
1 Jul, 2009
The following new features have been implemented in Wallpaper Cycler:
- The text editors now have an extra button to insert a line break without a visible horizontal line.
- The Info Panel now contains a “Set As Wallpaper” button in the upper right corner to make it easier to render the selected wallpaper to the desktop.
- Wallpaper Cycler will now by default store the rendered wallpaper in “C:\Users\<username>\AppData\Roaming\NuonSoft\WallpaperCycler” or similar depending on the language of your Windows and whether you are running XP, Vista or Windows 7. Previously WPC would store the image in the user temp folder, but some tools cleanup the temp folder causing a plain colored background to appear on the next reboot of Windows.
- An “Options…” menu item in the Wallpaper Cycler notification icon menu.
- The fullscreen preview now shows a ‘(Image x of y)’ in the lower left wallpaper information block.
I made the following bug fixes for Wallpaper Cycler:
- libexif.dll would sometimes crash with certain jpg files.
- The yellow error message that appeared in the screensaver when WPC was not running was not moving around the screen anymore.
- When folder synchronization adds new folders (= new categories) to disabled categories, the new categories are also disabled.
- Rerendering of the wallpaper in the Lite version of Wallpaper Cycler would not always happen in a low priority thread.
- When all categories were disabled, the “Start Cycling” button would be disabled, now it’s enabled and a warning will be shown when you press it to explain why cycling cannot start.
- When a cycle was skipped due to CPU usage (when CPU monitoring is enabled), the timer would freeze.
- Screensaver didn’t work on some systems.
- When cycling to the next file based wallpaper, WPC will first check if the file still exist. If it doesn’t exist it will automatically cycle again. It will try this for 10 times after which an error message is shown with a suggestion on how to cleanup the list.
- When the WPC screensaver was enabled, opening the Windows Screensaver control panel was pretty slow.
- WPC will remember the old screensaver and when disabling the WPC screensaver it will restore this old screensaver. Previously, it also happened that WPC would remove any screensaver that was configured in Windows, this should also not happen anymore.
- The option regarding hand-cursors in Options > Program Settings > Desktop has been rewritten a bit to make it more clear what is meant.
- In the startup settings delay times for <Rerender on startup delay> and <Delay load last WCL at startup> now clearly mention that those are in seconds.
- The words “tray icon” and “system tray” have been changed to descriptions based on “notification area” according to the Windows UI guidelines.
- The main window could be resized too small when running in very high DPI (150%).
- “error while create DIBSection in CWCL::RenderWallpaperWithLayout” appeared when Windows was waiting on the Switch User screen and WPC wanted to cycle the wallpaper.
- After returning from screensaver or locked desktop, the timer of Wallpaper Cycler sometimes didn’t count down anymore.
- Windows Gadget was not displaying correctly on Windows 7.
- Height of new tray icon has been increased with 1 pixel.
- The hotspots in the Info Panel kept working even when no wallpaper was selected in the main list.
- When you have a ‘Give Tags’ hotkey assigned to open the tags menu for the selected wallpapers, it will now show a thumbnail in the menu when only 1 wallpaper is selected. This also works in the fullscreen preview window.
- When the Give Tags menu opened, the main window or fullscreen preview doesn’t lose focus anymore.
I’m also happy to announce that I’m currently working on updating the website and preparing for finally releasing the 3.6 release 🙂
16 Apr, 2009
Wallpaper Cycler 3.6 Release Candidate 1 has been released to our testers. When no show stoppers are discovered during testing, this will become the final build for 3.6. 🙂
16 Apr, 2009
The following new features have been implemented in Wallpaper Cycler:
- New WPCController tool. This is a small application that accepts commandline parameters to control Wallpaper Cycler. It replaces the COM DLL. This is now used by the Windows Gadget instead of the COM DLL.
- Better support for High DPI systems, preventing blurry text and icons on Vista and later.
- All tree controls now have nicer selection on Windows Vista and up.
- All ListView controls now have nicer selection on Windows Vista and up.
- New option “Cycle wallpaper when display settings changed”. This in combination with the “Smart Orientation” feature is very useful for example for tablet users. When the tablet is rotated, WPC can automatically cycle the wallpaper to pick one that fits the new orientation.
- New option under “Tools > Program Settings > Document > Wallpaper Default Settings” to assign a default tag to newly added wallpapers. By default this is set to “To Be Reviewed”. This makes it easy to use a search folder to find all wallpapers with this “To Be Reviewed” tag so you can review the tags for the new wallpapers.
- A wallpaper object on a layout can now be set to “Random from same category and with given tag”.
- The skip extensions dialog now contains a button to reset the list to the default list of skipped extensions.
I made the following bug fixes for Wallpaper Cycler:
- “Rerender on resume” now has a delay of 10 seconds to give Windows time to restore network connections for example.
- The toolbars were not in High Color on a Dutch version of Windows.
- The “Rendering in progress” error is now only shown when the user manually initiates a cycle wallpaper request.
- Removed the tip of the day, since noone ever reads that anyway.
- The rotation option for wallpapers only worked when the tiling setting was set to “Stretch (Keep Aspect Ratio)”.
- WPC will now correctly render the wallpaper when running in High DPI mode, previously it could result in some tiling effect to become visible.
1 Feb, 2009
The following new features have been implemented in Wallpaper Cycler:
- You can now rotate any image by 90°, 180° or 270°.
- The N/A that was rendered to the desktop when something went wrong with processing a news feed can now be disabled in the global WPC settings. When disabled, WPC will not render any text when a news feed error happens.
- Also allow F2 and Slow Double Click to rename wallpapers, however, in that case a dialog pops up in which you do the renaming, because a warning message has to be displayed.
- You can now press CTRL+C in the EXIF data dialog to copy the selected EXIF data to the clipboard.
- A new option in Tools > Program Settings > Miscellaneous to disable the error balloons that are shown when something goes wrong while downloading a news feed.
- Added a button to the toolbar to quickly change the cycling settings (delay between wallpapers).
- Added a button to the toolbar to quickly change the cycling sound.
I made the following bug fixes for Wallpaper Cycler:
- Error messages during rendering appeared behind main WPC window, causing confusion.
- Calendar template “Bright” has 2 times the year at the top.
- Cycling is working now on Windows 7 🙂
- The “Random” screensaver transition effect was not that ‘random’ + sometimes a bit slow.
- Wallpaper Cycler can rerender the wallpaper automatically when the screen resolution has changed. This is an old feature, but is now enabled by default.
- The “Spiral In” and “Box In” screensaver transition effects left a 3-5 pixel horizontal line in the middle of the screen when running at 1440×900.
- Link targets didn’t work on wallpaper objects, calendar objects and frame objects.
- Removed font references to Californian in templates since that’s not a font installed by default on Windows.
- The text object renderer in a layout again properly calculates the bounding box.
- WPC would crash when a layout contained a calendar object that was too small to render all days.
- WPC would crash when a layout contained an object with a width or height of 0.
- Rendering of gradients was broken after adding the rotation option to wallpapers.
- The small preview image in the OSD was sometimes cut off.
- The pick background/text color dialogs now correctly keep aspect ratio of the image.
- The info panel will now allow you to quickly check if a wallpaper is linked to a layout either directly or indirectly through one of its parent categories.
- The RSS feeds again show a brief description of a feed entry and not the entire entry.
- View Details/Thumbnails now have an icon in the Wallpapers menu.
- Open a wcl, then go to File>Open, click Cancel, previous WCL was closed.
- Removed dots behind “move layout up…”, “move layout down…” menu items.
- An issue with resizing the main window and the tiling combo box in the Info Panel.
24 Jan, 2009
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… Read the rest of this entry »
13 Dec, 2008
I’ve hit a nasty bug in Wallpaper Cycler. One user previously reported to me a problem with the tiling of the wallpaper on the desktop on Windows Vista when Vista was configured with high DPI, for example 120 DPI. However, at that time I was unable to replicate the problem and since I only got the report from one user I thought it was an isolated case. Unfortunately, during the beta 2 phase of Wallpaper Cycler 3.6, one of the beta testers reported exactly the same problem. So, it’s not an isolated case. The bad thing is, I’m still unable to replicate the problem on my test Vista machines. Now, more and more users are starting to use the high DPI setting in Windows Vista because of the higher resolution monitors out there, especially notebook screens. Due to this, I really need to try to fix this for the final 3.6 release, but this means I probably won’t be able to release it before the end of the year 🙁
22 Nov, 2008
I’m pleased to announce that Beta 2 of NuonSoft Wallpaper Cycler 3.6 is currently in the hands of our beta testers. 🙂
22 Nov, 2008
The following new features have been implemented in Wallpaper Cycler
- Rendering now happens in a separate thread, not blocking the main GUI thread.
- The rendering thread will be switched to low priority if the rendering was initiated by a timer.
- The rendering thread will stay at normal priority when the user forced WPC to cycle the wallpaper.
- On Windows Vista or later, the rendering thread will use low priority I/O in case the rendering was initiated by a timer.
- The fullscreen preview window now scales the image with the same high quality as when rendered to the desktop. This feature can be disabled to speed up the preview on slower systems. Can be enabled/disabled from the global WPC settings or by pressing Q in the fullscreen preview.
- The uninstaller will no longer remove the license information.
- A new toolbar button to quickly toggle between thumbnail view and details view.
- New option “Cycle once every day and exit at windows logon”.
- The info panel will now allow you to quickly check if a wallpaper is linked to a layout either directly or indirectly through one of its parent categories.
- New option to enable/disable the feature that WPC will automatically select the new wallpaper in the main window when cycling to the next or previous wallpaper.
- You can now rename a layout by slowly double clicking the layout or pressing F2 in the list in the main window of WPC
9 Nov, 2008
I made the following bug fixes for Wallpaper Cycler:
- The screensaver will now also either take a random wallpaper or cycle them sequentially depending on the cycling settings of Wallpaper Cycler.
- When you get an error regarding ChangeNotification or NextChangeNotification, it is explained in the messagebox what the result of that error is.
- In layout objects, the “Link Target On Single Click” would not always work properly.
- Handcursor over link target should be visible on Vista.
- When libexif.dll is not available, it doesn’t crash anymore.
- The libexif.dll is now only loaded once instead of loaded/unloaded on every use.
- When WPC is starting up, the tray icon now has gray arrows. Once the WCL has been loaded the arrows will become either red or blue depending on whether WPC is cycling or not.
- The IsHiddenSystemFolder check was only done when importing a new folder. Now it is also done during synchronization of folderlinks.
- Fixed a memory leak when loading JPEG2000 images.
- Some PCX files caused Wallpaper Cycler to crash.
- The HTML renderer for text objects in a layout has been changed. Hopefully this solves issues with rendering certain RSS feeds
- When the main window is opened and thumbnails are being loaded, they will now start loading from where the scrollbar is, instead of starting with thumbnail 1.
- The name of the month and days was wrongly capitalized on for example Croatian settings.
- The gadget was still displaying copyright 2007.
- The Info Panel will now remember whether it should display the full name or the short name.
11 Oct, 2008
The following new features have been implemented in Wallpaper Cycler:
- The folder synchronization feature now will detect new sub folders and will create the appropriate categories for those new folders. System subfolders like the “recycle bin” and “System Volume Information” will be skipped automatically.
- The wallpaper will now automatically be rerendered when resuming from standy or hibernation.
- Nicer selection of items in the image list on the main window on Windows Vista.
- When you click on the My Wallpapers category, the wallpapers are only shown after double clicking a message. This is done to prevent performance issues with large wallpaper lists. An option has been added to disable this behaviour and to show the wallpapers immediately when clicking the My Wallpapers category.
- On a clean installation, the folder synchronization feature will by default skip *.db, *.ini, *.avi and *.lnk files. This behaviour can always be changed by adding/removing extensions in Tools > Program Settings > Global > Folder Synchronization > Skip Extensions
- Option to hide the message that says “Failed to install ChangeNotification on…” when the folder synchronization function could not be installed (for example: remote drives)
- A new Info Panel has been implemented that removes the Information Frame on the right of the main window.
- Every layout object now has an option called “visible” that can be used to hide an object from the desktop.
- You can now also pick a color from the selected wallpaper to use as text color, just as you were able to pick a color for the background.
- Hicolor toolbar and menu bitmaps.
- Two new options “Align Horizontal” and “Align Vertical” for a wallpaper object in a layout. These allow you to change the alignment of the wallpaper in that wallpaper object, so you can for example stretch to height + align to right or other combinations
I also made the following bug fixes for Wallpaper Cycler
- The new 3.6 installer will check if a previous version is installed and will ask to uninstall it. This is needed because quite a few new DLLs are being used and we want to get rid of the old ones.
- After uninstalling the previous version, the new 3.6 installer will automatically remove any oleacc.dl_ and/or dwmapi.dl_ files in the folder of the previous installation. These files were created by a Wallpaper Cycler Windows Vista patch and don’t get uninstalled by the uninstaller.
- The new 3.6 installer will save your registration username and serial number before running the uninstaller and will restore your username and serial number after installing the new version.
- Readme and license txt files are now fixed width, which reads easier on wide screen monitors and which is according to the RFC2822 regarding text documents.
- You could often not use the arrow keys and the spacebar key to check/uncheck items in the list on the right in Program Settings > Global > Miscellaneous.
- On a clean install, the main window will be bigger by default if you have a bigger monitor.
- Enlarged minimum window height due to new Info Panel.
- In new layout wizard, when you click the calendar template button, the Wallpaper Cycler calendar template folder will be opened by default.
- The zlib library has been updated to the latest version.
- When the folder synchronization kicks in in the background, no progressbar is shown anymore.
- F3 (Find Next) would not always work.
5 Oct, 2008
The following new features have been implemented in Wallpaper Cycler:
- JPEG files will now automatically be rotated and mirrored according to the orientation stored in the EXIF data.
- You can now enable an option called “Only generate sensible aspect ratios” for the “Automatically assign “Aspect Ratio x:y” tag” feature. This will prevent generation of tags like “Aspect Ratio 123:36”. It will now only generate aspect ratio tags with components <= 16 for example “Aspect Ratio 16:9”, “Aspect Ratio 5:3”.
- When using the “Quick Move” and “Give Tags” hotkey for the current wallpaper on the desktop, the OSD will now show a small preview of the image that will be manipulated.
- You can now choose between recursive/non-recursive selection of a wallpaper in a wallpaper layout object when that object is set to RandomFromSameCategory or RandomFromFixedCategory.
- When using the left/right keys in the fullscreen preview to preview the previous/next wallpaper, this is immediately reflected in the main window so that the feature “Give Tags” hotkey works correctly when browsing images in the fullscreen preview.
- Fullscreen preview: enter will now render the previewed wallpaper to the desktop.
- When closing the layout editor, WPC will now ask to save the changes or discard them. At the moment however, this is asked everytime the layout editor is closed even if nothing has changed in the layout.
I also made the following bug fixes for Wallpaper Cycler:
- When the screensaver was configured to use all available layouts, it would even select layouts in disabled categories. Disabled layout categories are now properly skipped unless you force the screensaver module to use a disabled layout category.
- Drag & drop of multiple wallpapers to a different category wasn’t working.
- When hitting the cancel button in the “select layout template” dialog, the creation of the layout is cancelled and the layout editor is closed.
- “highlight current wallpaper” didn’t work anymore. This also caused problems that WPC would rerender the wrong wallpaper when you hit Rerender wallpaper.
- Sometimes when adding a folder recursively to an existing category it would add all current child categories twice, closing the main window and reopening fixed this issue. This is now fixed, they shouldn’t appear twice anymore.
25 Sep, 2008
NuonSoft has released a patch to fix a stability issue with Wallpaper Cycler 3.5.0.97 on Windows Vista.
The patch is 176 KB.
More information can be found at:
http://www.nuonsoft.com/wallpapercycler/vista_patch.php
If you encounter any problems, don’t hesitate to contact NuonSoft Support
7 Sep, 2008
Quite a few people are experiencing issues with running Wallpaper Cycler under Vista. I’ve tracked it down to the bar on the right of the main window resembling a Windows XP taskpane. Because of all the reported issues, I decided to get rid of that taskpane completely and replace it by an Info Panel at the bottom of the window. The following image is a concept drawing of what I have in mind.

Hopefully this move will make Wallpaper Cycler stable on Windows Vista.
14 Jul, 2008
Due to some extended business trips and the fact that I will have my yearly holiday in August (finally 😉 ), my development on NuonSoft products has been temporarily suspended until September. In September or October, I hope to finalize the new build of Wallpaper Cycler.
10 May, 2008
Today I’m pleased to announce that Beta 1 of NuonSoft Wallpaper Cycler 3.6 is currently in the hands of our beta testers.
This beta version contains the following changes. Read the rest of this entry »
9 May, 2008
The following new features have been implemented in Wallpaper Cycler:
- New functionality added to the image preview window, the window that appears when you press the spacebar when an image is selected in the main window of Wallpaper Cycler:
- The preview window now allows you to use the left and right keys to move through the images in that category or search folder.
- A small (optional) help text is displayed in the preview window.
- Information of the image being previewed can optionally be shown on the preview.
- The tray menu now contains a “Tools > Find Non-Existing Wallpapers…” item.
- When a new update has been downloaded, WPC will now ask you if you want to run it immediately.
- The “Check for updates” feature will now calculate a checksum of the downloaded file to see if it was downloaded correctly.
- Text objects in layouts can now be linked to a wallpaper object in your layout. This allows you to use the %wallpapername% and other commands to display information about the wallpaper being shown in the linked wallpaper object.
I also made the following bug fixes for Wallpaper Cycler:
- The tree on the left of the main window was recreated every time you changed/added/deleted a category resulting in quite anoying visual flickering. This has been fixed now and the tree almost never flickers anymore.
- When running the trial version, when starting a new WCL file and then exiting Wallpaper Cycler, no question was asked whether to save the file or not.
- Increased the contrast a little bit of the Wallpaper Cycler Vista gadget.
- The Wallpaper Cycler Vista gadget didn’t display correctly when Vista was running in high DPI mode.
3 Apr, 2008
The following new features have been implemented in Wallpaper Cycler:
- New option to disable word wrapping for notes in calender notes objects.
- Some Open/Save dialogs now have the true Vista layout when running on Windows Vista.
I also made the following bug fixes for Wallpaper Cycler:
- WPC crashed when loading BMP files that where compressed with for example RLE8 compression.
- By default WPC will no longer make a sound when cycling or when CPU Load is too high to cycle. Of course this can be enabled again in File > Document Properties.
- The screensaver will now wait until the transition effect is finished before starting the timer for the next image.
- The “Circles Out” screensaver transition effect didn’t always completely covered the screen depending on your resolution.
- Wallpaper Cycler didn’t always start automatically when logging in to Windows and autostart was enabled.
- Cycle-at-times would not check exactly at the new minute when resuming from standy or hibernation.
- Fixed some problems with the cycle-at-time feature especially in combination with hibernation.
- You could press the “Delete” key on your keyboard to delete the “My Layouts” category which would crash WPC.
24 Mar, 2008
A new iteration of the Wallpaper Cycler development has started.
The following new features have been implemented in Wallpaper Cycler:
- When a layout doesn’t contain a wallpaper object with the “Which Wallpaper” property set to “Auto” a warning will be shown. This is done because in that case certain aspects of WPC will not work as expected. Double clicking a wallpaper in the main window for example will actually NOT show that wallpaper on your desktop because that’s the “Auto” wallpaper.
- A new option in Tools > Program Settings > Global > Startup called “Delay load last WCL at startup”. This allows you to specify a delay in seconds before Wallpaper Cycler will reload the last WCL file at startup.
- You can now make a printout of your calendar notes.
- %wallpaperfullname% can be used in text objects on layouts to display the full pathname + extension of a wallpaper and not only the filename part like %wallpapername% does.
I also made the following bug fixes for Wallpaper Cycler:
- When using “Random from fixed category” for a wallpaper object in a layout, WPC will now recursively select a wallpaper from the selected fixed category.
- Some configurations of wallpaper objects in layouts didn’t take disabled tags into account.
- The “Quick Disable” feature now properly checks all wallpapers currently on the desktop to determine if it needs to cycle when disabling a category or tag.
- WPC would crash with truncated BMP files. Most photo editing programs are also unable to load those, however, now WPC loads them without a problem, at least when they are not too damaged.
- The Vista gadget didn’t install on Vista 64 bit in the correct folder.
- You were unable to specify “-1” for the “Days After Current Day” in layouts > Calendar Notes Object > Edit Calendar Notes > General