Keep contacts shown on desktop visible when Aero Peeking |
Author: |
Message: |
tb87
New Member
Posts: 8
Joined: Jul 2009
|
O.P. Keep contacts shown on desktop visible when Aero Peeking
Hi,
I have a suggestion. I'm using Windows 7 with the Aero Peek function (think it's also available in Vista though). When I do the Aero Peek contacts setup to appear on desktop also get hidden. Would it be possible to keep them visible? It would be a really great feature allowing us to simply hit Windows+Space keys to quickly see who's connected.
I found some hints on how to do it, don't know though if it's gonna help you.
http://www.neowin.net/forum/index.php?showtopic=794078)
Thanks,
Alex
|
|
07-29-2009 04:08 AM |
|
|
tb87
New Member
Posts: 8
Joined: Jul 2009
|
O.P. RE: Keep contacts shown on desktop visible when Aero Peeking
eh-hem.. Anyone?
Is it because not a lot of people know about Aero Peek? In fact it's a function that allows you to temporarily see the desktop and (hopefully docked content WITHOUT having to minimize all those windows you have open by pressing WIN+SPACE key combination.
I use Outlook task/appointment gadgets this way : no need to popup outlook anymore to see what's in it. Wouldn't it be wonderful to have the same functionality with msgplus??
|
|
07-31-2009 12:57 PM |
|
|
NanaFreak
Scripting Contest Winner
Posts: 1476 Reputation: 53
32 / /
Joined: Jul 2006
|
RE: Keep contacts shown on desktop visible when Aero Peeking
gadgets react differently to normal windows, they will always hide instead of how gadgets stay... to make the floating contacts stay on the desktop would be too much of a hassle and having to hook into other things than messenger to make it work...
so, I doubt Patchou will implement this into Messenger Plus! Live.
|
|
07-31-2009 01:28 PM |
|
|
Eljay
Elite Member
:O
Posts: 2949 Reputation: 77
– / / –
Joined: May 2004
|
RE: Keep contacts shown on desktop visible when Aero Peeking
Actually, it's simple to implement
DwmSetWindowAttribute called with DWMWA_EXCLUDED_FROM_PEEK can make any window show through peek, could easily be done with a script as well until Patchou implements it. But I'm too lazy to make one and don't even use desktop contacts
|
|
07-31-2009 01:51 PM |
|
|
tb87
New Member
Posts: 8
Joined: Jul 2009
|
O.P. RE: Keep contacts shown on desktop visible when Aero Peeking
Ahh Eljay you're making my day guy
Didn't take a look at msgplus's scripting feature yet. I however have a past of scripting/programming so shouldn't be an impossible task to me.
Your thoughts on how much time/work this would take?
Of course I'd be willing to share the script here !
Alex
|
|
07-31-2009 10:53 PM |
|
|
tb87
New Member
Posts: 8
Joined: Jul 2009
|
O.P. RE: Keep contacts shown on desktop visible when Aero Peeking
Here's some working code :
code: function OnEvent_SigninReady(Email)
{
var handle = null;
handle = Messenger.ContactListWndHandle;
Interop.Call("User32.dll", "EnumChildWindows", handle, Interop.GetCallbackPtr("EnumCallback"), 0);
}
function EnumCallback(hWnd, lParam)
{
var DWMWA_EXCLUDED_FROM_PEEK = 12;
var three = 3;
Interop.Call("dwmapi.dll", "DwmSetWindowAttribute", hWnd, DWMWA_EXCLUDED_FROM_PEEK, three.DataPtr, 4) ;
return true;
}
However, for some obscure reason EnumChildWindows returns EVERY window visible on the desktop. So each window visible when you sign in will be applied the EXCLUDED_FROM_PEEK attribute. This doesn't bother me as only Outlook is started at the same time WLM starts (on Windows start) but if someone knows what's going on it would be good
Alex
|
|
08-02-2009 08:28 PM |
|
|
Eljay
Elite Member
:O
Posts: 2949 Reputation: 77
– / / –
Joined: May 2004
|
RE: Keep contacts shown on desktop visible when Aero Peeking
It's fairly easy to check if they are actually floating contact windows seeing as you already have the window handles. Within the callback loop you can simply call GetClassName and GetWindowText. Floating contacts have a class name of "#32770" (Windows standard dialog class) and a title of "Float".
The problem is detecting when these windows are created, your method of checking during the SigninReady event should be fine for existing desktop contacts but if you add any more contacts to your desktop they won't be affected by it until you next sign in, and I don't think you can detect when these windows are created (maybe you can with subclassing).
It would be much easier if Patchou implemented this into Plus!
|
|
08-02-2009 08:50 PM |
|
|
tb87
New Member
Posts: 8
Joined: Jul 2009
|
O.P. RE: Keep contacts shown on desktop visible when Aero Peeking
Humm.. Well the fact that the code's working is enough for me. It isn't neat/efficient/bug free but as this was my first JScript code I'll be happy and live with it, and I have no time to implement additional features.
For the API, kindly note that it is Enum ChildWindows - rather than EnumWindows - that is called. It should therefore return windows created by WLM, not every window on the desktop.
Nonetheless I still find it's a very useful feature to Aero Peek the contact list!
Thanks for your help,
Alex
This post was edited on 08-03-2009 at 10:12 AM by tb87.
|
|
08-03-2009 10:09 AM |
|
|
Spunky
Former Super Mod
Posts: 3658 Reputation: 61
36 / /
Joined: Aug 2006
|
RE: Keep contacts shown on desktop visible when Aero Peeking
quote: Originally posted by tb87
For the API, kindly note that it is EnumChildWindows - rather than EnumWindows - that is called. It should therefore return windows created by WLM, not every window on the desktop.
If WLM is minimized to the tray during signin, Messenger.ContactListHandle will return 0, meaning EnumChildWindows will enumerate all windows that are children of the desktop
<Eljay> "Problems encountered: shit blew up"
|
|
08-03-2009 11:04 AM |
|
|
tb87
New Member
Posts: 8
Joined: Jul 2009
|
O.P. RE: Keep contacts shown on desktop visible when Aero Peeking
Ahhh... useful information!
This is why I don't want to make bug-free apps : you find an exception, then have to implement a feature. I'll leave that stuff to Patchou !
Thanx though for the post.
Alex
|
|
08-03-2009 11:58 AM |
|
|
Pages: (2):
« First
[ 1 ]
2
»
Last »
|
|