EvolutionFallen 107 Junior Poster

Hello,
I'm looking to write a wallpaper-swapping program. This is just a personal project I feel like doing. I'm aware that there's already software out for this, but the one I like has limits on the freeware version, and the others don't have some of the features I'm looking for, or they don't work for Vista. Besides, I've been looking to practice my programming, since it's been a while since I've done any serious coding.

Requirements:
The program should let the user choose either a directory of images or choose specific images from one or more directories.
Images will swap every time the specified time interval has passed since the last swap. They should be able to swap either in the order they appear in on the list, or randomly should the user so choose.
The program should have a system tray icon, keeping it running even when the window is closed.
Oh, and it has to work with Vista.

Here are my questions:

What language?
I'm leaning towards C# or VB... I don't have extensive experience with either, but hey, no better way to learn than to try, right? Any recommendations on which to use?

What libraries/functions will I need to be familiar with?
Obviously, the most important question is how do I even change a wallpaper? I'd also need to be able to handle various image formats (don't know if that requires anything special).

Any other things to take into account that I'm probably not considering?

Thanks for the help!
- EF