What happened to the Messenger Plus! forums on msghelp.net?
Shoutbox » MsgHelp Archive » Messenger Plus! for Live Messenger » WLM Plus! General » Keep contacts shown on desktop visible when Aero Peeking

Pages: (2): « First [ 1 ] 2 » Last »
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
Profile E-Mail PM Find Quote Report
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
Profile E-Mail PM Find Quote Report
NanaFreak
Scripting Contest Winner
*****


Posts: 1476
Reputation: 53
32 / Male / Flag
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
Profile PM Find Quote Report
Eljay
Elite Member
*****

Avatar
:O

Posts: 2949
Reputation: 77
– / Male / –
Joined: May 2004
RE: Keep contacts shown on desktop visible when Aero Peeking
Actually, it's simple to implement :P

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 8-)
07-31-2009 01:51 PM
Profile PM Find Quote Report
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
Profile E-Mail PM Find Quote Report
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
Profile E-Mail PM Find Quote Report
Eljay
Elite Member
*****

Avatar
:O

Posts: 2949
Reputation: 77
– / Male / –
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! :P
08-02-2009 08:50 PM
Profile PM Find Quote Report
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 EnumChildWindows - 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! :D

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
Profile E-Mail PM Find Quote Report
Spunky
Former Super Mod
*****

Avatar

Posts: 3658
Reputation: 61
35 / Male / Flag
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" :zippy:
08-03-2009 11:04 AM
Profile PM Find Quote Report
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
Profile E-Mail PM Find Quote Report
Pages: (2): « First [ 1 ] 2 » Last »
« Next Oldest Return to Top Next Newest »


Threaded Mode | Linear Mode
View a Printable Version
Send this Thread to a Friend
Subscribe | Add to Favorites
Rate This Thread:

Forum Jump:

Forum Rules:
You cannot post new threads
You cannot post replies
You cannot post attachments
You can edit your posts
HTML is Off
myCode is On
Smilies are On
[img] Code is On