 |
AutoHotkey Community Let's help each other out
|
| View previous topic :: View next topic |
| Author |
Message |
ezuk
Joined: 04 Jun 2005 Posts: 129
|
Posted: Sat Dec 31, 2005 1:22 pm Post subject: Multiple monitors --> Multiple wallpapers (one for each) |
|
|
Hi,
When you run a multihead system, you cannot by default set a different wallpaper for each monitor, because Windows sees them all as one large desktop.
Techncally, it _is_ possible to set a different wallpaper per monitor -- I have seen programs which do this (commercial software).
I want to do this with AHK.
My suggested algo is:
1) Find out how many monitors user has.
2) Find out resolution of each monitor.
3) Get X images (one per monitor)
4) Use ImageMagick to resize each image to the proper resolution per each monitor.
5) Use ImageMagick to stitch all images together into one really wide BMP image.
6) Use DLLCall (technique described in other forums) to set this image as the wallpaper.
What I want to know:
1) Does anyone have a better idea?
2) Do you have any tips as to how to achieve 1-2?
3) Is there any other user here with a dual- to triple-head system who wants to collaborate on creating something like this?
Thanks. |
|
| Back to top |
|
 |
TheLeO
Joined: 11 Jun 2005 Posts: 179 Location: England ish
|
Posted: Sun Jan 01, 2006 11:55 am Post subject: |
|
|
In the help file:
| Quote: | A_ScreenWidth
A_ScreenHeight
The width and height of the primary monitor, in pixels (e.g. 1024 and 768). [requires v1.0.22+]
To discover the dimensions of other monitors in a multi-monitor system, use SysGet.
To instead discover the width and height of the entire desktop (even if it spans multiple monitors), use the following example (but on Windows 95/NT, both of the below variables will be set to 0):
SysGet, VirtualWidth, 78
SysGet, VirtualHeight, 79
In addition, use SysGet to discover the work area of a monitor, which can be smaller than the monitor's total area because the taskbar and other registered desktop toolbars are excluded. |
Why bother to resize the bmp image? if the desktop is set via ahk it can be set to automaticly resize the image...??
as for changing the wallpaper for the screen via ahk,,,for at least the main monitor: try this:
Note* you have to change:
>(WinDir "\web\wallpaper\cutefebruary.bmp")<
to pictures existing on your drive some where,
also ive copied this from another post,,., this only works for bmp's. dont know how to make it work for other formats.
| Code: |
1::
SetWallpaper(WinDir "\web\wallpaper\cutefebruary.bmp")
Return
2::
SetWallpaper(WinDir "\web\wallpaper\Cute Spring-1600.bmp")
Return
3::
; XP
SetWallpaper(WinDir "\web\wallpaper\Cute Wuinter .bmp")
Return
SetWallpaper(BMPpath)
{
SPI_SETDESKWALLPAPER := 20
SPIF_SENDWININICHANGE := 2
Return DllCall("SystemParametersInfo", UINT, SPI_SETDESKWALLPAPER, UINT, uiParam, STR, BMPpath, UINT, SPIF_SENDWININICHANGE)
} |
hope i helped you out some how..
by the way,, do you have Nvidia or ARI graphics?? as far as i can remembre I was able to do that stuff on my old geforce 4's driver,, for free? _________________ And i say: where there is a problem , there is a solution.(well some where that is.)
::
I Have Spoken
:: |
|
| Back to top |
|
 |
TheLeO
Joined: 11 Jun 2005 Posts: 179 Location: England ish
|
Posted: Fri Jan 20, 2006 9:32 pm Post subject: |
|
|
Hello again, months have passed and now I have the same problem as you.. i indeed have 2 monitors now and i get the problem of not being able to have 2 wallpapers... a temporary solution is some thing like:
| Code: | Imagedir = C:\WINDOWS\Web\Wallpaper\Wallpaper412_2.jpg
SplashImage, %Imagedir%, A B X1281 Y256 ,
WinSet, Bottom,, TryOutScript3.ahk |
its properties are : not allways on top, and it has no border, the X### and Y#### have to be adjusted depending on where the monitor is located. ..
this is not a continious sollution,.
by the way, have you had any ideas? _________________ And i say: where there is a problem , there is a solution.(well some where that is.)
::
I Have Spoken
:: |
|
| Back to top |
|
 |
ezuk
Joined: 04 Jun 2005 Posts: 129
|
Posted: Fri Jan 20, 2006 10:10 pm Post subject: Nothing new on this |
|
|
Nope...
My only idea was to try the SharpE shell environment (I've been using Litestep for the last 5 years) because it supports this feature.
But anyway, I'm going to buy a new computer next month, with two nVidia PCIX cards (each one with two video ports -- i.e, capable of supporting 4 monitors in all). And the nVidia multi-monitor drivers are much better than the ATI ones I currently use, and I understood the allow for this functionality.
So I can only hope that with my new computer this will be solved, just no by using AutoHotkey... |
|
| Back to top |
|
 |
3tones
Joined: 14 Dec 2004 Posts: 45 Location: Minneapolis, MN
|
Posted: Mon Sep 11, 2006 2:22 am Post subject: |
|
|
| I happened to notice this post... To set a different picture on different monitors, use imaging software to put the two images together at the exact resolution of your two screens. Then set the background to "tile." It may be possible to automate this all with AHK using irfanview or ImageMagick to manipulate the images. |
|
| Back to top |
|
 |
majkinetor
Joined: 24 May 2006 Posts: 3652 Location: Belgrade
|
Posted: Mon Sep 11, 2006 8:10 am Post subject: |
|
|
very nice solution _________________
 |
|
| Back to top |
|
 |
|
|
You can post new topics in this forum You can reply to topics in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|