There is
already basic multi desktop support in Explorer. It doesn't use
"true" desktops because that's not compatible with notification (aka tray)
icons. It simply hides any window not on the current desktop like XP's
explorer does.
There also are APIs such as CreateDesktop or SwitchDesktop, I believe
those are what the VWM PowerToy uses. Note that iirc those are truly
separate desktops though, ie. on each desktop there's a separate
instance of the shell. Then again, given the list this is posted on, I
probably just stated the obvious. ;)
I know. I treid to implement the multiple desktops using this functions,
(thats's what I called "true desktops") but had to see it isn't possible
to
get
it right this way. If you want, you can look into my explorer source code.
It's still there - just disabled. Using CreateDesktop() and SwitchDesktop()
shows the following problems:
- It's not possible to share the notification area among different desktops.
- If you want to launch programs from those additional desktops, it's not
enough to create a new thread per desktop, you have to launch an explicit
new explorer processes for each of the desktops.
- You can't (simply) move one application from one desktop to another.
(However it could be possible by using a thread-/DLL-injection technic,
I didn't try this.)
The XP powertoy desktop switcher also doesn't use this CreateDesktop()
API, it's also just hiding windows when switiching from one "desktop" to
another.
Regards,
Martin
--
Martin Fuchs
martin-fuchs(a)gmx.net
GMX ProMail (250 MB Mailbox, 50 FreeSMS, Virenschutz, 2,99 EUR/Monat...)
jetzt 3 Monate GRATIS + 3x DER SPIEGEL +++
http://www.gmx.net/derspiegel +++