views:

60

answers:

2

It seems Windows is unable to display different background images on different monitors on a multi-monitor system out of the box. But I noticed there are quite a few commercial applications available which provide this feature.

Which APIs can be (mis-)used to provide this functionality? If there's no special API for this feature, can it be done by hooking into another Win32 API function? If so, which one?

+1  A: 

Wallpaper replacement applications on Windows don't hook into the Windows API, they make a window the size of the desktop and render an image on it. There's APIs in Win32 to make such a window unclickable and living below everything else, and sized correctly for the desktop.

Jed Smith
+2  A: 

You could also try to programaticaly create an image the size of the virtual desktop joining several images making the divide fall where each monitor ends and then set that image as a wallpaper.

Simple and low tech.

voyager
Would that work with different screen sizes, i.e. one monitor full-hd, the other 1680x1050?
DR
@DR: you'd have to programatically check what the different monitors resolutions are and work from there.
voyager