private static string GetActiveWindowTitle()
        {
            const int     nChars = 256;
            StringBuilder Buff   = new StringBuilder(nChars);
            IntPtr        handle = User32Wrapper.GetForegroundWindow();

            if (User32Wrapper.GetWindowText(handle, Buff, nChars) > 0)
            {
                return($"handle:{handle} buff:{Buff}");
            }
            return($"handle:{handle}");
        }
        private string GetActiveWindowTitle()
        {
            const int     nChars = 256;
            StringBuilder Buff   = new StringBuilder(nChars);
            IntPtr        handle = User32Wrapper.GetForegroundWindow();

            if (User32Wrapper.GetWindowText(handle, Buff, nChars) > 0)
            {
                return(Buff.ToString());
            }
            return(null);
        }
Пример #3
0
        /// <summary>
        /// 恢复WorkerW中的所有句柄到桌面
        /// </summary>
        public static void RestoreAllHandles()
        {
            var desktop          = User32Wrapper.GetDesktopWindow();
            var workw            = GetWorkerW();
            var enumWindowResult = User32Wrapper.EnumChildWindows(workw, new EnumWindowsProc((tophandle, topparamhandle) =>
            {
                var txt = User32Wrapper.GetWindowText(tophandle);
                if (!string.IsNullOrEmpty(txt))
                {
                    User32Wrapper.SetParent(tophandle, desktop);
                }

                return(true);
            }), IntPtr.Zero);

            RefreshWallpaper(null);
        }