Esempio n. 1
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);
        }
Esempio n. 2
0
        public static void Close(bool restoreParent = false)
        {
            if (!_showed)
            {
                return;
            }

            _showed = false;

            if (!_initlized)
            {
                Initlize();
            }

            if (restoreParent)
            {
                var desktop = User32Wrapper.GetDesktopWindow();
                User32Wrapper.SetParent(_handler, desktop);
            }
            DesktopWallpaperAPI.Enable(true);
        }