WallpaperSwitcher Portable 1.0.2.4 Dev Test 1

Submitted by wraithdu on May 16, 2008 - 5:58pm

Application: WallpaperSwitcher
Category: Desktop
Description: WallpaperSwitcher is an app for changing the wallpaper on your system. It supports ordered and random timed rotation or switching for a single image.

Download WallpaperSwitcher Portable 1.0.2.4 Dev Test 1 [1.34MB ownload / 1.5MB installed]
(MD5: ad314d912331f24ac88b55a61a6c3cfd)

WallpaperSwitcher requires Microsoft's GDIPlus (GDI+) to be installed to function. If you don't have GDI+ installed, you can try to use the included gdiplus.dll, or install it from here:

Microsoft GDI+

All settings are configurable and documented in the INI file. A future version will make these settings available through a GUI.

Release Notes:
1.0.2.4 Dev Test 1 (2008-08-05)

  • New wallpaper selection box, accessible via tray menu, complete with tooltip paths
  • Reworked internal timers for compatibility with selection box
  • Changed tray menu now appears on right-click

1.0.1.0 Dev Test 1 (2008-07-02): Initial release


( categories: )

Cool

It worked for me. This has potential.
How about holding the images for more than 2 secs, and/or looping back through again once they're finished? This is pretty far from a beta test, but it is an interesting concept. What's needed is something to automate the image moving & renaming thing. This could turn out to be a really neat app.

Mathematics for King of the Britons:
"It's not a question of where he grips it! It's a simple question of weight ratios! A five ounce bird could not carry a one pound coconut!"

The 2 seconds and looping

The 2 seconds and looping through images was just to test the concept here, and really has nothing to do with what the app might become. This was originally a request for something to change wallpaper when using portable apps, then change it back when you're done.

So yeah, if it works for enough people we can start talking about what everyone wants it to do.

Tested XP SP2. Works fine

Tested XP SP2. Works fine .bmp and .jpg

Overall Pass.

Overall Pass. I will run an additional test on a limited WXP and W2K profile later this week.

>==System Details==<
Roles: Workstation, Server, Potential Browser
Profile: Administrator
Operating System: Microsoft(R) Windows 2000 Professional
Service Pack Version: 4.0
Processor Description: Intel(R) Pentium(R) 4 CPU 3.20GHz
Total Memory: 1024MB

Detailed test results as follows:

Steps 1, 2, 3, & 4: Pass.

<--Step 5, Run 1-->
With provided GdiPlus.dll {dated 2008-01-19, no local installed version}
Use BMP files - Yes. [No BMP in folder as of this run]
Passing Result = Error | Images not found.

Use BMP files - No. [26 JPG in folder as of this run]
Passing Result = 'needs conversion'.
Failing Result = Application popup: AutoIt v3: wallpaper.exe - Application Error : The instruction at "0x00432fcf" referenced memory at "0xfffffff8". The memory could not be "read".

<--Step 5, Run 2-->
With different GdiPlus.dll {dated 2006-04-18, copied from another portable edition folder, still no local version installed}
Use BMP files - Yes. [No BMP in folder as of this run]
Passing Result = Error | Images not found.

Use BMP files - No. [26 JPG in folder as of this run]
Passing Result = 'needs conversion'. conversion, display (26), delete temp conversion, exit.

<--Step 5, Run 3-->
With different GdiPlus.dll {same as Step 4, Run 2}
Use BMP files - Yes. [26 BMP in folder as of this run]
Passing Result =

Use BMP files - No. [No JPG in folder as of this run]
Passing Result = display (26), exit.

/s/ BTW I'm a Quality Assurance Analyst by trade... ;)

Hmm, found out that I guess I

Hmm, found out that I guess I can't just put gdiplus in the app directory. It needs to be installed in Windows (but Win2k SP4 and up have it already).

Thanks for all the tests. While thorough, this test was not designed to catch all errors, like no existing images in the directories (stop lying to my program ;) ).

But I'm not sure I understand the results of your last run there. You final test should have not found any images (use JPG, but no JPG images in folder).

True. Copy N Paste strikes again

That is true that last run shouldn't have found and displayed anything. I can place the blame on copy n paste there.

As stated I was able to copy one of the GDIPlus files from I think OpenOffice Portable to make it work without actually installing it on the PC I was testing the time.

As for the over thoroughness, I am Quality Assurance Analyst and was in the 'groove' as it were when I tested the app.

/s/ BTW I'm a Quality Assurance Analyst by trade... ;)

I also had another idea for

I also had another idea for you. I love your EraserDropTarget, so I had this idea http://portableapps.com/node/13535

Worked beautifully on WinXP Pro SP4

... using whatever GDI is installed on the system. It ran through all the images in each folder (I used different images for each set, and a different number of images in each set) and returned to the desktop's setting when done.

I wasn't quite sure whether you were kidding about the images being named image1, image2, etc. but I discovered easily enough that you weren't. It gave me the "no images found" error until I renamed the files to that scheme. (Good thing I copied instead of moved them into the folders; I have a strong aversion to meaningless file names, so it wouldn't have been much fun to have to rename them again later. :/ )

This app-ears (lol) to have great potential. I can't wait to see it fully fleshed out with options! I'd keep using it now, if it could loop and I could set the interval.

I will try it later tonight on my Vista Home Premium laptop and report back.

Cheers!
---Fox

Cool, glad it worked for

Cool, glad it worked for you.

This thing kinda got lost and didn't seem like anyone had interest, since wallpaper switching is part of the PApps platform now.

But if enough people show some interest with some reasonable feature ideas, I might devote some time to it.

Also worked on Vista Home Premium...

... except that it didn't stretch the jpgs like it does in XP; it only centers them. I'm back at work so am not at the Vista machine at the moment. I can tell you it's an HP Pavilion dv6700, 1.83 GHz, Intel Core 2 Duo Processor T5550 chipset but I haven't got the display driver details. It's a widescreen display, if that helps, whereas the dual monitors I run off the XP machine are not. LMK if you need more details and I'll provide them later when I'm able.

As for the PortableApps wallpaper switcher, I think yours would be far more preferable. For one, the PA version can only swap one image, and that image has to be a bitmap renamed to portableapps_wallpaper.bmp in the Documents\Pictures directory. Yours already handles multiple images, which is what I'm looking for (I run dual monitors at work, so it's nice to have a "slideshow" of wallpapers; and sorry I forgot to mention the dual monitors earlier; works so well that I didn't think of it as a relevant detail).

Features? The ones that come immediately to my mind are listed below, ranked by priority as I perceive it. Personally, I'd be happy with just the top five, at least to begin with. Some of these I'm not sure are even possible; just ideas.

- User's preference: use a single image, or randomize images, or loop through images
- For randomizing or looping, user selects display interval
- Both bmp and jpg images in same directory
- Use current image filenames
- User specifies directory or directories of images
- User chooses tile, stretch, or center images
- Show app in system tray so user can see that it's running and can use it to change options easily... or make options available in desktop right-click menu. (I see it does run in the system tray currently. Just wanted to note how to get to options.)
- If looping or randomizing, allow user to "pause" and "resume" (also does this already, from the system tray)
- If looping, user specifies sort order for images (ascending or descending by file name, by size, by date modified)
- Could limit number of images to... 100?
- Optional saturation/fade level of image display...? Sometimes boldly colored wallpapers make desktop shortcuts and icons difficult to see
- Option to display system clock on desktop (maybe can integrate an existing program)... would be cool to choose analog vs. digital format, and "embossed" into desktop image or displayed on top of it

I've been unable to find anything online that does this, especially not GPL open source portables. I've seen suggestions for ways to get some existing programs to run portably, but am not convinced they are entirely portable, and they only support Windows up to XP. I'd like to be certain that what I'm running is not only designed to run portably, but supports at least Windows XP and Vista, if not earlier versions. That's why I'm convinced you're onto something with this little program... it would fill a niche.

Cheers!
---Fox

Wow, that's a lot to chew on

Wow, that's a lot to chew on :)

Only things I see a problem with -

1. tile / stretch / center - not sure how to change that yet. It's not in the SystemParametersInfo() function, so i'm guessing it's a registry setting.
2. image saturation / fade / level - i'm very basic with GDI+ functions, so any image manipulation is not gonna happen. Some kind of fading would require not changing the wallpaper, but creating a fake GUI to cover the dekstop and setting the image to that. Then I have to make clicks go through. That's a totally different concept from what I've got here, I'm afraid.
3. system clock - again, would require some advanced GUI manipulation and really is another program altogether.

Nice suggestions though. Your top 5 should be easy to do. I'll keep this in mind for my next project. I'm just about ready to release ArkeType, so it could be soonish.

Awesome!

Those other items really aren't important anyway. (I have to confess I thought you had a handle on #1, because it was stretching my images... until I realized it's probably just using my local setting. LOL. However, my local setting on Vista is stretched, not centered... I think. I dislike the look of centered wallpapers, so I'd never let it remain set that way; and the default wallpaper is stretched. But I will double-check that setting.)

I guess that one other thought I just had might be equally difficult to achieve: to temporarily change the text size and color of desktop shortcuts, overriding the local settings. This seemed it might work better/more easily than trying to fade the image, for making the shortcuts easier to see.

(I had wondered if fading the image might have to involve altering a temporary copy of the file using an image editor, because not even the Windows system allows the user to alter the wallpaper display, only to choose which image is displayed. In that case, altering a copy for display would use too many resources, and actually require an embedded image editor because there's no telling what any given user might have access to. So I pretty much expected that idea to not happen.)

Cheers!
---Fox

Suggestions

To add on to what has already been said...

  1. Allow user to disable sideshow and only show one wallpaper and then allow user to shut off application if that option is used
  2. Allow switch to a different default directory (I have a over 100 pictures in a different folder and I don't want to have to move the entire folder and rename them!
  3. Allow app to work without renaming pictures
  4. Allow app to access archives (I use high resolution .jpg's that are really large pictures as .bmp's)
      example:(the actual, rounded numbers are used)
    • venom.jpg ~300 KB
    • venom.bmp ~1.2 MB !!
    • venom.7z ~560 KB

    If zipped I can save a ton of space for large "HD" pictures.

  5. Any other suggestions have already been given by other users

~~{What will he think of next?}~~
~~{SeaMonkey 2.0a1 is out!!!}~~

Actually, I did suggest those...

... except number 4, which is a great idea, especially considering users would naturally keep the images on portable devices. I'll vote for that! Apparently we think alike on the other suggestions.

Cheers!
---Fox

You've found your own

You've found your own solution for #1, just use the JPGs. Vista is the only OS that natively supports JPGs for wallpaper. XP and below convert the JPGs to BMPs first, then set the wallpaper. Since the JPG is smaller than even the archived BMP, just use that. My program will convert it to a BMP first on XP and below.

Incidentally, I've recently figured out how to resize pictures. So I'm thinking about resizing the images to the native desktop resolution first, to avoid any centering / stretching issues.

Re: desktop shortcuts. I'm pretty sure this would involve changing the system wide fonts and colors. This program is not intended to go this far I'm afraid. Someone else suggested a program to take portable OS settings with you, but I don't want to get myself that deep into a project like that right now.

I was wrong, it was using Vista settings...

I keep forgetting the complications Vista introduced in user profiles... I don't know how it works, but under my personal account it was using the system default wallpaper, even though on my account the wallpaper was set to center. I changed that to stretch and the jpgs look fine now.

So that's only going to be a concern if people want to override the local setting temporarily, instead of changing the local setting.

In the meantime, I'm using the tester version and just pausing on an image I like; removing the pause to change to another one; and getting along just fine. But I do look forward to development on this project!

Cheers!
---Fox

PAF

Put it in PAF format and stick on a Dev test number, and we can add it to the development list.

Heh, all in due time.

Heh, all in due time. Development on this starts after I get a version of ArkeType released (very soon), get a PAF friendly version going, and do my EDT modifications.

Wait a sec

I just realized, the menu HAS a built in wall paper switcher. (It could be a bit more straight foward though)

Yes, but....

... see my earlier post about its limitations and about why I think this new app would be very useful.

Cheers!
---Fox

Also...

I'm a P Start user and need something that's menu independent.

~~{What will he think of next?}~~
~~{SeaMonkey 2.0a1 is out!!!}~~

Thought you'd like to know...

... that someone at work noticed my wallpapers changed during the day (I just run the app and pause it on an image I want; I've got maybe thirty now in the jpg folder!) and I showed them your little tester app. They wanted it... and I've had eight or nine other people coming and asking for a copy since then, so apparently the word is out here at work. I am careful to let them know it's just a little tester and that they need to rename the images, but they're having fun with it anyway, as am I.

(The individual who was most excited about it is a new grandmother. She's very happy to be able to choose and change wallpapers so easily.)

Cheers!
---Fox

weird screen during download and ...

no download. :(
I just tried it, and instead of a download starting, I got sent to the nascent website and the browser screen filled with iconic junk, like diamonds with question marks in them, bullets, etc.
Like this: 7z��'�t��id�����$�������I�3m���`�", A��

Tried it again, still the same. At the bottom of the page, it says "Done"

Don't be an uberPr∅. They are stinky.

It works for me at the

It works for me at the moment.

@foxcole
Haha, nice.

I'm working on the new version now. First release will be INI driven.

ah, had to right-click it ...

to save it. I was expecting a regular download.

Don't be an uberPr∅. They are stinky.

Left clicking brings up the

Left clicking brings up the download as normal for me. Maybe a browser issue with the .7z file (mime type thing)? Server hiccup? Dunno. Works on IE and FF3 for me.

I got the page of gibberish

I got the page of gibberish as well.
EDIT: BMP's and JPG's both worked fine on XP Home SP2, and Vista Business SP1.

It's got to be a .7z or mime

It's got to be a .7z or mime type thing then. Next versions I'll just do a regular .zip. In the mean time just right-click, saveas.

Initial Release

First major release is out. I think I got all the big feature requests in there. Settings GUI will be in a later version.

"No files found. Exiting..."

Vista Home Premium (where the tester version worked just fine)

I thought at first this would use a single directory for images, as that was one of the requested features and the download only contains one folder named "Source" (image source?). So I copied the original (not renamed) image files into there... but got the error "No files found. Exiting..." (though it doesn't exit until I click OK).

Figuring it might be a filename issue, I deleted the original files and copied the renamed images instead. Same error.

So, I copied the two folders bmp and jpg from the test version, so the app directory now contained three folders, and tried again. Same error.

Where is it looking for images and what do I need to do to get this running?

EDIT -- Oh. :oops: Of course after asking that, NOW I see the note that everything is documented in the .ini and I need to manually configure that. Sorry!

Cheers!
---Fox

Nice work!!!!

Oh, this is incredibly cool!!! I now have it pointing to three folders containing images, for ten seconds per image, looking for bmp, png, gif and jpg. It's awesome!

What I like also is the ability to specify different folders of images, so I've set up themed folders and in the .ini typed in various folder selections that I can comment out or uncomment, so it's easy enough to pick whatever I feel like looking at for the day.

Very cool!! Very nice job! Thanks!!!!

Cheers!
---Fox

I recommend making the tray

I recommend making the tray menu show on right click instead of left click. Right clicking seems more natural to me.

The developer formerly known as ZGitRDun8705

Suggestions

Me too :).

Some command line parameters would be nice. For example, "-q" to exit the application.

Wanna script it, huh? I'll

Wanna script it, huh? I'll see what I can do. If I'm doing one commandline thingy, what else would you like to see available? Basically it'll launch a second instance that will just send a windows message to the running instance. So once I create the framework for it, it's a matter of adding more messages. Might as well do it all at once.

How about setting a specific

How about setting a specific wallpaper and style by commandline, with relative path of course.

Nice

Pretty nice, working well.

Glad it's working. I've

Glad it's working. I've updated to Dev Test specs with a PAF installer. It will prompt you on your first run to configure the INI and tell you to restart the launcher when you're done, then it will exit.

wraithdu, you don't happen to

wraithdu, you don't happen to know any delphi do you? If you did I know of a really great freeware skinnable wallpaper changer project that you could take over. It's called Quickchanger, the developer told me the other day he'd be willing to give someone the source that he has left. Some of it was lost in a HD crash. He just doesn't have the time to work on it anymore
Unfortunately the skinning engine he used isn't OSS, so it couldn't be an official app here. It is a great app though, I still use the last released version on my home PC.

Sorry. Delphi is something I

Sorry. Delphi is something I want to learn, but haven't started yet. I'll keep this in mind down the road if I get good enough, but somehow I doubt that will be anytime soon.

I think I'm going to finally try and get started after I get this next version out - will have an options GUI and a nice thumbnail view selection window for manual switching.

Ok, well I'll probably still

Ok, well I'll probably still try to get someone to take over this project. Just getting a launcher for the last released version would be great.

It has a skinnable interface, that the skinner can decide how many preview panes to show. Here is a skin I ported for it http://dragonmage.deviantart.com/art/Sputnik-QC-212917 The filters is the coolest part about it. You can apply different filters to smooth jagged edges on the wallpaper. It also has a scaled style, in addition to center, stretch, tile, which expands the image until it hits the screen resolution limit, but maintains the aspect ratio, so it doesn't distort.

Changes/Request

I'd like to request a way to exit the program using the command-line. Also, if for some reason the programs exists unexpectedly (lets say you kill it from the task manager), then the wallpaper will not change to the original and it will keep a folder (the name begins with ~) in the TEMP folder with the wallpaper that was displayed in it, and if you happen to run the program again, it will think that whatever wallpaper was left behind IS the original one. A few months back I was working on a script to change the wallpaper, and the way I decided to solve this was to get the computer name, user name and date, and if any of the three changed, it will read the information of the original wallpaper, if not, it will keep whatever information was already saved.

"In three words I can sum up everything I've learned about life: it goes on." -- Robert Frost
"In three words I can sum up everything I've learned about life: baby ain't mine." -- Adam Holguin

We really shouldn't be

We really shouldn't be killing things from Task Manager unless absolutely necessary, now should we? Same thing as using most of the NSIS CloseProcess type commands, it's bad karma. At one point I wrote a PoliteClose function that requests an app to close the right way for this point. Killing an app doesn't give it the opportunity to close correctly, causing problems (as you noted).

Commandline support is coming, just exit via commandline has been requested so far. I'll consider how to handle the "crash" scenario as well.

EDIT - yeah, ${CloseProcess} in my ProcFunc.nsh header.

Update

I haven't had much time to work on this for a while, but I've had this update just sitting there. I thought I should release it since I really like the selection box feature. The settings GUI and commandline are not implemented yet.

Quick Thought

Would it be possible to get this to close via a command? I use an eject script with PStart to dismount and eject. It'd be nice if I could have this start with PStart, then use my eject script to shut it down.

(I know there are other ways to do this, just thought it might be a nice feature built-in)

I've had this requested for

I've had this requested for several of my apps...it's not too hard to implement. I'll post an update when it's done.