2007-12-28

How to get list of all open windows and their names in AX

How to get list of all open windows and their names in AX. Just run following job.
static void JobAllTheWindows(Args _args)
{
        hWnd Parent;
        hWnd handle;

        hWnd mdi;
        #WinApi

        dialog d = new Dialog();
        DialogTabPage dt;

        str text;
        ;

        d.caption("All the windows");
        d.windowType(FormWindowType::PopUp);

        Parent = infolog.hWnd();
        mdi = WinApi::getWindow(Parent, #GW_CHILD);

        handle = WinApi::getWindow(mdi, #GW_CHILD);
        text = WinApi::getWindowText(handle);

        if(text)
        {
                dt = d.addTabPage(text);
                d.addText(text);
        }

        if(handle)
        {
                while(handle)
                {
                        handle = WinApi::getWindow(handle, #GW_HWNDNEXT);
                        text = WinApi::getWindowText(handle);

                        if(text)
                        {
                                dt = d.addTabPage(text);
                                d.addText(text);
                        }
                }
        }         d.run(); }
An interesting observation: as a matter of fact Infolog window is open always, even if we not see it at the moment!

No comments: