コード例 #1
0
        private void GetChildWindows()
        {
            WinAPI.EnumWindowsProc ecwp   = new WinAPI.EnumWindowsProc(EnumChildProc);
            ETWP_Param             lParam = new ETWP_Param();

            lParam.m_parent    = this;
            lParam.m_nThreadID = m_nThreadID;
            GCHandle gch = GCHandle.Alloc(lParam);

            WinAPI.EnumChildWindows(m_hWnd, ecwp, GCHandle.ToIntPtr(gch));
            gch.Free();
        }
コード例 #2
0
            public static IntPtr[] GetChildWindows(IntPtr Parent)
            {
                List <IntPtr> children   = new List <IntPtr>();
                GCHandle      listHandle = GCHandle.Alloc(children);

                try
                {
                    WinAPI.EnumWindowsProc childProc = new WinAPI.EnumWindowsProc(EnumWindow);
                    WinAPI.EnumChildWindows(Parent, childProc, GCHandle.ToIntPtr(listHandle));
                }
                finally
                {
                    if (listHandle.IsAllocated)
                    {
                        listHandle.Free();
                    }
                }
                return(children.ToArray());
            }
コード例 #3
0
        public static List <Window> GetProcessWindows(Process process)
        {
            WinAPI.EnumWindowsProc etwp   = new WinAPI.EnumWindowsProc(EnumThreadWndProc);
            ETWP_Param             lParam = new ETWP_Param();

            lParam.m_hAppMainWnd = (int)process.MainWindowHandle;
            lParam.m_windowList  = new List <Window>();
            GCHandle gch = GCHandle.Alloc(lParam);

            RestoreWindow(lParam.m_hAppMainWnd);

            foreach (ProcessThread thread in process.Threads)
            {
                lParam.m_nThreadID = thread.Id;
                WinAPI.EnumThreadWindows(thread.Id, etwp, GCHandle.ToIntPtr(gch));
            }
            gch.Free();

            GenerateHierarchicalIDs(lParam.m_windowList);

            return(lParam.m_windowList);
        }
コード例 #4
0
 public static void GetWindows()
 {
     WinAPI.EnumWindowsProc callback = new WinAPI.EnumWindowsProc(EnumWindows);
     WinAPI.EnumWindows(callback, 0);
 }
コード例 #5
0
 public static extern bool EnumWindows(WinAPI.EnumWindowsProc enumProc, IntPtr lParam);
コード例 #6
0
ファイル: WinAPI.cs プロジェクト: 1833183060/autocad-dev
 public static extern int EnumWindows(WinAPI.EnumWindowsProc ewp, int lParam);
コード例 #7
0
ファイル: WinAPI.cs プロジェクト: 1833183060/autocad-dev
 public static extern int EnumChildWindows(int hwnd, WinAPI.EnumWindowsProc callbackFunc, int lParam);