大家好,关于vista动态桌面很多朋友都还不太明白,今天小编就来为大家分享关于windows动态壁纸软件的知识,希望对各位有所帮助!

关于Vista的动态桌面如何设置

吴玥:听说Vista可以使用动态桌面,但具体方法我一直没找到,特此请教董师傅。董师傅:对的,Vista Ultimate Extras中有两个免费插件,其中之一就是被称为“动态桌面”的Windows DreamScene,这个插件可以让用户使用高清视频作为桌面的背景。下面讲具体设置方法。当你的桌面由传统的静态图片变成自己喜欢的动画或视频时,你是不是觉得很惊讶?不过要用上Vista的动态桌面,还需要满足一些条件才能实现。一、使用动态桌面的条件 1.必须是旗舰版Vista。 2.必须是正版用户。 3.已启用Windows Aero。二、中文版本Vista也能安装动态桌面第一步:下载英文语言包由于中文版本的Vista暂时不支持动态桌面,首先需要获取Vista的英文语言包,微软提供了英文等16个语言包的官方下载,下载地址为 . com/msdownload/update/v3- 19990518/cabpool/lp-en-us_ c38cb05f3146b642c9574363399880 8fa5229875.exe,这个文件虽然不是太大,才251.9MB,但安装时却会占用1GB左右的硬盘空间,因此请朋友们事先确定Vista的安装盘符是否有足够的可用空间。第二步:重置显示语言进入控制面板选择“更改显示语言”,打开“区域和语言选项→键盘和语言”对话框,在“选择显示语言”的下拉列表框中重置显示语言,选择“English”,确认后重启系统。第三步:安装Windows DreamScene现在,我们就安装Windows DreamScene。不过要注意的是,要恢复中文界面。安装完毕在重启系统之前请再次进入“控制面板”,打开“ Regional and Language Options→Keyboards and Languages”对话框,在“Choose a display language”下拉列表框中选择“中文(简体)”。三、体验动态桌面重启系统后,除了可以从右键菜单中发现“Play Windows DreamScene”的选项之外,进入“个性化→桌面背景”页面,如图1所示,我们还可以在这里发现关于新增加的视频选项, Vista自带的视频文件被保存在“\Windows\Web\ DeskScapes Animated Wallpapers”路径下,你只需要像设置普通的桌面那样进行简单的选择即可, Windows DreamScene本身提供了大量素材,可以让你的桌面每一天都是新的,当然消耗的资源也不会少(图2)。小知识:什么是Ultimate Extras Ultimate Extras是专门为Vista的旗舰版本用户提供的一些可下载插件,我们可以在开始菜单中发现它的踪影,选择后可以搜索是否有可用的Ultimate Extras更新。当然,你也可以将自己所喜欢的电影拖曳到桌面,Windows DreamScene支持MPEG、WMV格式,放开鼠标后即可实现自动播放,这样我们就可以在桌面上观看电影,让你的桌面不再是静态的图片而是不断变化的画面,需要停止动态桌面时可以右击桌面选择“Pause Windows DreamScene”。不过,遗憾的是,当将视频文件作为桌面时,我们是无法听到声音的……

vista动态桌面?windows动态壁纸软件

采纳哦

vista 动态桌面背景怎么设置

如何设置Vista动态桌面背景

在Windows Vista操作系统中设置动态桌面背景需要几个简单的步骤。首先,请确保您拥有的是Vista旗舰版,因为只有旗舰版才支持动态桌面功能,也称为梦幻桌面(dreamscene)。

第一步,打开Windows Update功能。这将使您的系统能够查找并安装可用的更新。由于梦幻桌面功能默认并不包含在Vista旗舰版中,因此您需要通过Windows Update来安装它。在更新列表中找到并选中梦幻桌面的更新,然后点击安装。

安装完成后,您可以在桌面的空白处右键点击,此时应该能够看到“播放dreamscene”或“暂停dreamScene”的选项。接下来,点击“个性化”选项,选择“桌面背景”。在这里,您可以选择“视频”作为桌面背景,这样您的桌面就会变成一个动态的视频背景。如果列表中没有您想要的视频,您可以点击“浏览”按钮,从电脑中选择自己喜欢的视频文件作为桌面背景。

vista动态桌面?windows动态壁纸软件

选择好视频后,点击确定,您的Vista桌面背景就已经设置成了动态视频。如果您想要暂停动态桌面,只需在桌面空白处右键点击,选择“暂停dreamScene”即可。

除了使用系统自带的梦幻桌面功能,您还可以选择下载并使用第三方软件来设置动态桌面背景。例如,Wallpaper Engine是一款非常流行的壁纸软件,它支持动态壁纸,并提供了丰富的壁纸资源供用户选择。您可以在Wallpaper Engine的创意工坊中搜索并订阅自己喜欢的动态壁纸,然后软件会自动下载并应用这些壁纸作为您的桌面背景。

总之,无论是使用系统自带的梦幻桌面功能还是第三方软件,设置Vista动态桌面背景都非常简单。只需几个步骤,您就可以让您的桌面变得更加生动和有趣。

如何实现桌面动态壁纸

Wallpaper Engine是由Kristjan Skutta开发的一款动态壁纸软件。与其他壁纸软件不同,Wallpaper Engine允许用户通过其引擎深度自定义或编辑,创作出符合个人需求的壁纸样式。如果你对WallpaperEngine的效果感到惊艳,并想制作个性化的桌面美化程序,这篇文章将带你了解动态壁纸实现的一些细节。

通过Spy++工具研究桌面窗口层次,我们可以了解如何形成WorkerW分层窗口。在Windows的桌面中,图标列表和背景窗口等组成,这些窗口和控件窗口之间具有一定的层次。使用Spy++可以获取到开机后普通的桌面窗口层次,结构如下所示:

"Program Manager"Progman|--"" SHELLDLL_DefView|--"FolderView" SysListView32|--"" SysHeader32(Unvisible)

我们可以观察到在Desktop窗口中,Z-Order位于最底层的窗口是Progman窗口,其子窗口是SHELLDLL_DefView窗口,SHELLDLL_DefView又有一个窗口类为SysListView32的子窗口,最后SysHeader32窗口是不可见的。显而易见,桌面上的图标都在名为SysListView32的列表窗口中。如果熟悉MFC,看到SysListView32会很眼熟,MFC中的CListCtrl控件窗口类也是SysListView32。

在这种层次下,往Progman窗口中嵌入一个WM_CHILDWINDOW属性的窗口,将会覆盖在SysLisView32窗口上方,或者被前面的窗口挡住,无法通过嵌入窗口的方式实现类似WallPaper Engine那样的壁纸。现在,我们来看一下Wallpaper Engine嵌入壁纸窗口时桌面窗口层次的变化,Wallpaper Engine在Win 7上的行为和更高版本系统不一样。首先是Win 8及以上操作系统:

""WorkerW(本文称作WorkerW 1)|--"" SHELLDLL_DefView|--"FolderView" SysListView32|--"" SysHeader32(Unvisible)"" WorkerW(本文称作WorkerW 2)|--"" CefBrowserWindow(WallpaperEngine的浏览器窗口)"Program Manager" Progman

然后,是Win 7系统,层次结构如下:

""WorkerW 1(Visible, Aero)|--"" SHELLDLL_DefView|--"FolderView" SysListView32|--"" SysHeader32(Unvisible)"" WorkerW 2(Unvisible, White)"Program Manager" Progman|--"" CefBrowserWindow(Wallpaper Engine的浏览器窗口)

我们发现SHELLDLL_DefView及其下面的桌面图标窗口成为一个WorkerW窗口的子窗口(我们称WorkerW 1),和第一个WorkerW同级但Z序位于下方的WorkerW窗口(我们称WorkerW 2),在Win 8至Win 11上壁纸窗口设为了WorkerW 2的子窗口,而在Win 7上则设置为Progman的子窗口。

从Spy++返回的信息来看,WorkerW和Progman都是NULL,也就是说它们是桌面顶级窗口,没有父窗口和所有者窗口。

在Win 7下用Spy++分别看WorkerW 1、WorkerW 2的属性,会发现WorkerW 2是一个Popup窗口,其Parent是Progman窗口,其上一个窗口句柄是WorkerW 1。WokerW 1窗口也是一个Popup窗口,其父窗口显示无,但是其下一个窗口显示的句柄正好是WokerW 2。此时这三个窗口Z序很明显了:WorkerW1> WorkerW2> Progman窗口。

在分析窗口属性的时候我还发现一个有趣的现象:

比如在Win 11下,WorkerW 2的扩展属性中有一个叫WS_EX_TRANSPARENT的属性,而在WorkerW 1下则没有:

对于WS_EX_TRANSPARENT属性,MSDN是这样说的,在窗口下方(由同一个线程创建)的兄弟窗口被绘制之前,不应该对窗口进行绘制。窗口显示为透明,因为底层兄弟窗口的位已经被绘制。要在没有这些限制的情况下实现透明度,请使用SetWindowRgn函数。

也就是说这个扩展属性,可以实现鼠标穿透。

再看看Win 7下的窗口属性:

可以看到WorkerW不仅有鼠标穿透,还有WS_EX_LAYERED分层窗口属性。用GetLayeredWindowAttributes函数检索透明度时调用失败,猜测窗口是使用UpdateLayeredWindow实现透明度的。但是Win 7/8上,WorkerW 1并不是透明的,会遮挡WorkerW 2,在Win 8.1及以上则不遮挡,单纯从窗口属性上很难判断窗口是否透明。

WorkerW 1、WorkerW 2和Progman窗口一样,都属于explorer.exe进程的窗口。实际上想要将自己的窗口嵌入到Windows桌面图标下方,桌面的窗口层次一定正确,并且保证高Z序窗口是透明的。总结以上分析,Win 7/8窗口应嵌入Progman并隐藏WorkerW 2;Win 8.1开始的系统上,窗口应嵌入WorkerW 2。需要注意的是,用嵌入窗口的方式实现动态壁纸,只能在Win 7及其以上系统上实现,Vista/XP以及更早的系统无法产生这种透明的窗口层次,XP是没有DWM框架且窗口不透明,Vista是早期的DWM有些功能不支持,导致无法用Worker分层窗口嵌入壁纸窗口。

WorkerW分层窗口用于在切换桌面时产生淡入淡出动画,这主要通过在名为WorkerW的平滑移动窗口上绘制桌面Progman窗口的HDC信息得到。这种窗口是延时产生的,最典型的是在Win 7 SP3上更改显示器配色方案时以及Win 10等打开“任务视图”时。下面演示两种情况下窗口层次是如何产生的。

(1)在Win 7 SP3上更改显示器配色方案

使用Spy++监视窗口消息,当更改显示器配色方案时,系统会调用PostMessage函数,并发送一条未公开的WindowsMessage,即0x052C(WM_SHELLPARENTCHANGING)

(2)在Win 11上监视Progman,并打开和关闭“任务视图”按钮

可以观察到,打开“任务视图”的时候,wParam是0x0D,lParam是0x01,关闭时则是0x0。

似乎研究Param并没有太大意义,只要发送0x052C消息,窗口层次就自动变为透明层次。

通过很多发送消息函数都可以实现,比如具有超时发送的SendMessageTimeout函数:

其中,前4个参数和SendMessage相同,后面参数是控制超时的,0x03E8等同于十进制的1000,表示等待超时时间是1000毫秒。

1.3部分代码和测试

测试代码:

更多内容请查看CSDN原文链接: