What happened to the Messenger Plus! forums on msghelp.net?
Shoutbox » MsgHelp Archive » Messenger Plus! for Live Messenger » Scripting » Could someone do me a favor and run this

Pages: (2): « First [ 1 ] 2 » Last »
Could someone do me a favor and run this
Author: Message:
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
O.P. Could someone do me a favor and run this
I just need the debug results from when a Chat Window is opened. Thanks

If it crashes I am sorry :(

js code:
var MAXLEN = 0xff;
var oChatWnd = {};
var IID_IAccessible = Interop.Allocate(0x10);
Interop.Call('ole32', 'IIDFromString', '{618736E0-3C3D-11CF-810C-00AA00389B71}', IID_IAccessible);


function OnEvent_ChatWndCreated (pChatWnd) {
    // Find the DirectUIHWND window
    EnumChildWindows(pChatWnd.Handle);
   
   
    var pAccessibleData = Interop.Allocate(4);
    if(Interop.Call('oleacc', 'AccessibleObjectFromWindow', oChatWnd[pChatWnd.Handle], 0xFFFFFFFC, IID_IAccessible, pAccessibleData) === 0) {
        var iAccessible = pAccessibleData.ReadInterfacePtr(0);
        if(iAccessible) {
            var iAccessibleChildren = Interop.Allocate(16*iAccessible.accChildCount);
            var iAccessibleChildrenFound = Interop.Allocate(4);
            if (Interop.Call('oleacc', 'AccessibleChildren', iAccessible, 0, iAccessible.accChildCount, iAccessibleChildren, iAccessibleChildrenFound) === 0){
                for (var i=0; i<iAccessibleChildrenFound.ReadDWORD(0); ++i) {
                    if (iAccessibleChildren.ReadDWORD(i*16) === 0x9) {
                        var iAccessibleChild = iAccessibleChildren.ReadInterfacePtr(i*16+8);
                        if (iAccessibleChild) {
                            Debug.Trace(iAccessibleChild.accName(0)+' : '+iAccessibleChild.accValue(0));
                        }
                    }
                }
            }
        }
    }
}

function EnumChildWindows(hWnd) {
    oChatWnd[hWnd] = 0;
    Interop.Call('user32', 'EnumChildWindows', hWnd, Interop.GetCallbackPtr('EnumChildProc'), 0);
}

function EnumChildProc(hWnd, lParam) {
    var GA_PARENT = 0x1;
    var lpClassName = Interop.Allocate(MAXLEN);
    Interop.Call('user32', 'GetClassNameW', hWnd, lpClassName, MAXLEN);
    if (lpClassName.ReadString(0) === 'DirectUIHWND') {
        oChatWnd[Interop.Call('user32', 'GetAncestor', hWnd, GA_PARENT)] = hWnd;
        return false;
    }
    return true;
}

This post was edited on 08-24-2010 at 03:12 PM by matty.
08-24-2010 03:12 PM
Profile E-Mail PM Find Quote Report
Chrissy
Senior Member
****

Avatar

Posts: 850
Reputation: 5
29 / Male / Flag
Joined: Nov 2009
RE: Could someone do me a favor and run this
I ran it,

quote:
Script is starting
Script is now loaded and ready
Function called: OnEvent_ChatWndCreated


This post was edited on 08-24-2010 at 03:20 PM by Chrissy.
08-24-2010 03:19 PM
Profile E-Mail PM Web Find Quote Report
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
O.P. RE: Could someone do me a favor and run this
Did you open a Chat Window?
08-24-2010 03:19 PM
Profile E-Mail PM Find Quote Report
Eljay
Elite Member
*****

Avatar
:O

Posts: 2949
Reputation: 77
– / Male / –
Joined: May 2004
RE: Could someone do me a favor and run this
It displays nothing at all :P

quote:
Script is starting
Script is now loaded and ready
Function called: OnEvent_ChatWndCreated
08-24-2010 03:20 PM
Profile PM Find Quote Report
Chrissy
Senior Member
****

Avatar

Posts: 850
Reputation: 5
29 / Male / Flag
Joined: Nov 2009
RE: Could someone do me a favor and run this
quote:
Originally posted by matty
Did you open a Chat Window?
Yeah, sorry it was this

quote:
Script is starting
Script is now loaded and ready
Function called: OnEvent_ChatWndCreated


edit: yeah, same as above.

This post was edited on 08-24-2010 at 03:21 PM by Chrissy.
08-24-2010 03:21 PM
Profile E-Mail PM Web Find Quote Report
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
O.P. RE: Could someone do me a favor and run this
Could either of you tell me what the chat window class is called? I assume the child window is the DirectUIHWND.

This post was edited on 08-24-2010 at 03:23 PM by matty.
08-24-2010 03:23 PM
Profile E-Mail PM Find Quote Report
Chrissy
Senior Member
****

Avatar

Posts: 850
Reputation: 5
29 / Male / Flag
Joined: Nov 2009
RE: Could someone do me a favor and run this
quote:
Originally posted by matty
Could either of you tell me what the chat window class is called? I assume the child window is the DirectUIHWND.
If you tell me how I'll easy tell you :).
08-24-2010 03:28 PM
Profile E-Mail PM Web Find Quote Report
Eljay
Elite Member
*****

Avatar
:O

Posts: 2949
Reputation: 77
– / Male / –
Joined: May 2004
RE: Could someone do me a favor and run this
quote:
Originally posted by matty
Could either of you tell me what the chat window class is called? I assume the child window is the DirectUIHWND.

[Image: attachment.php?pid=999663]

.gif File Attachment: imwindow.gif (13.18 KB)
This file has been downloaded 480 time(s).
08-24-2010 03:29 PM
Profile PM Find Quote Report
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
O.P. RE: Could someone do me a favor and run this
Thanks LJ! Could you guys run this now

js code:
var MAXLEN = 0xff;
var IID_IAccessible = Interop.Allocate(0x10);
Interop.Call('ole32', 'IIDFromString', '{618736E0-3C3D-11CF-810C-00AA00389B71}', IID_IAccessible);

// A chat window will automatically open
>>>Messenger.OpenChat('test@test.com');<<<

function OnEvent_ChatWndCreated (pChatWnd) {
    var hWnd = Interop.Call('user32', 'FindWindowExW', pChatWnd.Handle, 0, 'IM Window Class', '');
    hWnd = Interop.Call('user32', 'FindWindowExW', hWnd, 0, 'DirectUIHWND', '');
   
    var pAccessibleData = Interop.Allocate(4);
    if(Interop.Call('oleacc', 'AccessibleObjectFromWindow', hWnd, 0xFFFFFFFC, IID_IAccessible, pAccessibleData) === 0) {
        var iAccessible = pAccessibleData.ReadInterfacePtr(0);
        if(iAccessible) {
            var iAccessibleChildren = Interop.Allocate(16*iAccessible.accChildCount);
            var iAccessibleChildrenFound = Interop.Allocate(4);
            if (Interop.Call('oleacc', 'AccessibleChildren', iAccessible, 0, iAccessible.accChildCount, iAccessibleChildren, iAccessibleChildrenFound) === 0){
                for (var i=0; i<iAccessibleChildrenFound.ReadDWORD(0); ++i) {
                    if (iAccessibleChildren.ReadDWORD(i*16) === 0x9) {
                        var iAccessibleChild = iAccessibleChildren.ReadInterfacePtr(i*16+8);
                        if (iAccessibleChild) {
                            Debug.Trace(iAccessibleChild.accName(0)+' : '+iAccessibleChild.accValue(0));
                        }
                    }
                }
            }
        }
    }
}
08-24-2010 03:34 PM
Profile E-Mail PM Find Quote Report
Chrissy
Senior Member
****

Avatar

Posts: 850
Reputation: 5
29 / Male / Flag
Joined: Nov 2009
RE: RE: Could someone do me a favor and run this
quote:
Script is starting
Script is now loaded and ready
Function called: OnEvent_Initialize
Function called: OnEvent_Uninitialize
Script has been stopped
Script is starting
Script is now loaded and ready
08-24-2010 03:36 PM
Profile E-Mail PM Web 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