C# EnumWindows 枚舉所有窗口並返回指定窗口標題句柄


//調用
            ListTitleHandle = new List<IntPtr>();
            var r =  EnumWindows(PrintWindow, "計算器");



        //函數指針類型
        delegate bool deleWindowsProc(IntPtr hWnd, string lParam);

        [DllImport("user32.dll")]
        static extern int EnumWindows(deleWindowsProc hWnd, string lParam);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        static extern int GetWindowText(IntPtr hWnd, StringBuilder lpText, int nCount);

        //存儲句柄集合
        List<IntPtr> ListTitleHandle;
        //回調函數
        bool PrintWindow(IntPtr hWnd, string lParam)
        {
            //分配空間
            var sb = new StringBuilder(50);
            GetWindowText(hWnd, sb, sb.Capacity);
            //注意某些窗口沒有標題
            if (sb.ToString() != String.Empty && sb.ToString().Equals(lParam))
            {
                Console.WriteLine(sb.ToString());
                ListTitleHandle.Add(hWnd);
            }
            //返回True繼續往下回調,返回False終止
            return true;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM