沉淀笔记

您现在的位置是:首页 > 电脑教程

电脑教程

win7视频壁纸怎么设置方法,win7怎样设置视频壁纸

2022-11-21 11:10:06 电脑教程
(win77如何设置视频壁纸?zuk网管小贾/sysadm.cczuk最近小伙伴叫小旺,最近和女友在追综艺节目《一年一度的喜剧大赛》.zuk该节目播出以来,形式年轻化,多玩化,剧本也是脑洞频出,创意无限,极具特色,深受年轻人的追捧.zuk有这样一部小品《先生请出山》,被创作者自称陷阱喜剧,播出后突然在网上爆炸.zuk不,小旺和他的女朋友也着迷了,上瘾了,问我能不能把这个视频放在桌面上,这样就

(win77如何设置视频壁纸?zuk

网管小贾 / sysadm.cczuk

最近小伙伴叫小旺,最近和女友在追综艺节目《一年一度的喜剧大赛》.zuk

该节目播出以来,形式年轻化,多玩化,剧本也是脑洞频出,创意无限,极具特色,深受年轻人的追捧.zuk

有这样一部小品《先生请出山》,被创作者自称陷阱喜剧,播出后突然在网上爆炸.zuk

不,小旺和他的女朋友也着迷了,上瘾了,问我能不能把这个视频放在桌面上,这样就不能再看了,又显得酷了?zuk

zuk

有这么让人痴迷吗?zuk

我真的有点不相信.结果看了魔舞和风骚的走路,再也出不来了!zuk

嘿嘿,没错,被成功洗脑的我,现在也时常动不动就想模仿一下那舞步的动作.zuk

现在大多数年轻人不抽烟不喝酒也只是为了点这些乐子,理解理解!zuk

我告诉小旺,动态桌面壁纸程序不多,下载就用.zuk

可我得到的回复是,这些软件不是收费的就是里面夹带私货的,都不怎么让人放心,问有没有靠谱点的方法.zuk

也是哈,所以我研究了好几天,最后成功把这个魔舞视频当成了动态桌面壁纸!zuk

zuk

本文结尾有自制程序下载,免费、安全、可靠,无私货~zuk

zuk

实验平台

Windows 10 (默认开启 Aero )zuk

zuk

目标效果

基本上可以在桌面上播放视频,达到动态桌面的效果.zuk

同时,不妨碍日常操作,如桌面图标点击、移动等.zuk

zuk

工具介绍

除了编程工具,在正式开始了解原理之前,我们还需要请出窗口句柄抓取工具:Microsoft Spy .zuk

它是来自 Vistual Studio 可提供系统过程、线程、窗口和新闻图形视图的实用工具.zuk

zuk

zuk

zuk

zuk

当然,如果您熟悉这一点,也可以使用其他窗口句柄查看工具.zuk

但是,如果你不知道什么是窗口句柄,那也没关系.我给你简单解释一下.你可能知道.zuk

zuk

首先,我们应该知道,在系统中,窗口(或窗口)是最常用和最基本的容器载体,窗口中有许多不同的控制器,用于操作系统功能或与用户互动.zuk

窗户很重要,那么如何管理这些窗户呢?zuk

很简单,系统会分配给这些窗口ID,这个ID就叫作句柄(Handle).zuk

这些窗口的句柄就像身份证号码.当我们想操作它们时,告诉系统它们的身份证ID也就是窗口句柄.zuk

那么 Spy 可以提供图形参考,让我们知道哪个窗口是哪个句柄.zuk

zuk

桌面壁纸原理

事实上,我们的系统由许多窗口组成,有些是可见的,有些是看不见的(隐藏或透明的),有些是可见的,但不能直接访问,有些甚至看不见我们也可以操作它,简而言之,所有这些窗口都堆叠在我们面前.zuk

你只需要把这些窗户想象成许多不同的玻璃,就像照镜子一样,从近到远站在你面前,有的透明,有的不透明.zuk

所以对于桌面来说,它也是一块玻璃(一个窗口),但它有点特别,里面有几个小玻璃(子窗).zuk

因此,如果我们对窗口的概念有一个大致的了解,我们可以使用它 Spy 观察它是什么样子.zuk

zuk

桌面窗的原貌

如下图所示,通过 Spy 展开当前窗

什么是谷歌优化?谷歌优化的技巧是哪些

口的句柄树,很容易知道桌面窗口是怎么套娃的.zuk

zuk

zuk

zuk

zuk

顶部是桌面窗口的句柄,下面有许多个子窗口.zuk

关键是名字对我们有用 Program Manager 子窗是我们苦苦寻找的桌面背景,包括包含壁纸和图标的子窗.zuk

简单来说,桌面窗口就像下面这样.zuk

|- "Program Manager" Progman // 总体桌面|--- "" SHELLDLL_DefView // 负责显示桌面图标|----- "FolderView" SysListView32 // 控制桌面图标排序顺序|------- "" SysHeader32 // 隐藏窗口,功能不详

zuk

百度竞价排名优势具体是什么?提升百度排名方法介绍

这些窗口 "" SHELLDLL_DefView 桌面图标窗口.zuk

简单说一下,引号是 窗口标题 ,而后面则是 类名 ,比如 "Program Manager" 是窗口标题,还有 Progman 是类名.zuk

简单说一嘴,引号里是 窗口标题 ,而后面则是 类名 ,比如 "Program Manager" 是窗口标题,还有 Progman 是类名.zuk

了解窗口的标题和类名将非常有利于我们找到定位窗口,从而便于操作.zuk

直接嵌入 Progman窗口中行吗zuk

根据前面的介绍,我们很容易得出结论,既然桌面壁纸和图标属于不同的子窗口,我们能在图标下方插入我们的程序窗口吗?zuk

理论上的想法是对的,但是经过我的实际测试,很遗憾根本达不到这样的效果!zuk

zuk

设置程序窗口 Progman 子窗,虽然跑到了所有窗口的最后,但不能显示在图标后面.zuk

zuk

zuk

zuk

zuk

zuk

那有什么问题呢?zuk

多桌面冒出来 WorkerWzuk

原来我们用的是 Windows 10 虽然它默认支持系统,但它支持它 Aero 但它也有多桌面的新功能,你只需要按一下 Win Tab 键就能看到.zuk

这种多桌面功能会使桌面窗口发生奇妙的变化,系统会产生多个 WorkerW 窗户出来了.zuk

这个 WorkerW 我们可以简单地理解为切换桌面的小窗口,但现在有很多.zuk

跑出这么多 WorkerW 在窗户里,有一个会把原来的 Progman 下面的子窗抢过去,就像下图一样.zuk

zuk

zuk

zuk

zuk

嗯,这是一件坏事!zuk

我们按照 Progman 窗口找到桌面图标背景的方法完全无效!zuk

那为什么要搞这么多呢? WorkerW 它不能愉快地使用 Progman 吗?zuk

事实上,官方解释说,为了使桌面切换呈现平滑过渡的效果,设计使用了多个 WorkerW 窗户,否则效果会让你想砸电脑.zuk

好吧,道理大家都懂,那接下来怎么整呢?zuk

既然 Progman 下面的子窗被抢走了.我们能试着找到这个吗? SHELLDLL_DefView 类子窗口的 WorkerW ,然后把你程序的窗口放在它后面作为子窗口?zuk

尽量嵌入程序窗口 WorkerWzuk

经过一番折腾,我发现即使找到了目标, WorkerW ,把程序窗口放在下面仍然不起作用.zuk

如下图所示,虽然程序窗口已经跑到了所有窗口的最后,但它仍然停留在桌面图标的前面,效果是将程序窗口挂在前面 Progman 下面是一样的.zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

现在我很困惑,为什么这不行,那也不行?zuk

其实这里有一个套路,这个套路真的让我想了很久!zuk

什么套路,我们往下看!zuk

zuk

我在网上查阅了很多信息.在不断的实验中,我发现除了有子窗口之外,我还发现了 WorkerW 其他一切 WorkerW 都是隐藏的.zuk

zuk

zuk

zuk

实际有效的做法是,我们需要zuk

将程序窗口嵌入到第二个可见的非隐藏的窗口中 WorkerW 之上

才行.zuk

注意它有两个特点,一是排名第二,不含子窗,二是可见的非隐藏属性.zuk

让 WorkerW窗户可见且透明zuk

我们前面说过,按下 Win Tab 键可以切换多个桌面,当我们这样切换时,系统会产生多个 WorkerW 过渡切换效果采用窗口.zuk

因此,我们可以用程序模拟按下它 Win Tab 键.zuk

然而,在我试图模拟按钮后,我发现窗口闪烁,状态不理想,所以我在网上找到了信息.zuk

zuk

根据网上资料,Windows 当我们向前走时,有一个系统保留消息 Progman 窗口发送 0x052C 消息时,桌面会产生透明度 WorkerW 窗户,同时将 Progman 子窗转移到新生成的子窗口 WorkerW 之下.zuk

正是我们前面看到的,子窗被抢了.zuk

需要注意的是,这是 Vista 后续版本有效,嗯,可以理解为打开 Aero 系统的效果.zuk

我用 VB 就像下面这样,代码很容易实现.' 获取 Progman 句柄lngDesktopHwnd = FindWindow("Progman", vbNullString)' 然后向 Progman 发送 0x052C 使其产生 WorkerWSendMessage lngDesktopHwnd, &H52C, 0, 0

zuk

全面寻找目标 WorkerW窗口zuk

我们想要的 WorkerW 在窗户之后,我们必须找到找到目标窗口的方法,即第二个可见的窗口 WorkerW 窗口.zuk

切记,这个 WokerW 窗户是可见的,不是隐藏的,不包括任何子窗.zuk

切记,这个 WokerW 窗户是可见的,不是隐藏的,不包括任何子窗.zuk

我的遍历算法可以使用,但灰色往往很粗糙.你可以简单地参考并自己改进.

' 获取桌面句柄lngDesktopHwnd = GetDesktopWindow' 获得第一个 WorkerW 窗口句柄lngWorkerW = FindWindowEx(lngDesktopHwnd, 0, "WorkerW", vbNullString)' 将临时类名定义为比较和搜索多个同级别 WorkerW 窗口Dim lpClassName As String' 遍历所有 WorkerW 直到找到不拥有 SysListView32 窗户的那个 WorkerW 为止!Do While lngWorkerW > 0 If IsWindowVisible(lngWorkerW) Then lngShellDll = FindWindowEx(lngWorkerW, 0, "SHELLDLL_DefView", vbNullString) If lngShellDll = 0 Then Exit Do Else ' 找到下一个同级窗体句柄 lpClassName = Space(255) Do While UCase(Left(lpClassName, 7)) <&zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk

zuk


关键词排名软件

【沉淀笔记】文章内容来源:https://www.chendian168.cn/diannao/6440.html
版权声明

本文由沉淀笔记发布/转载,不代表沉淀笔记立场,本站资讯除标注“原创”外的信息均来自互联网以及网友投稿,版权归属于原始作者,如果有侵犯到您的权益,请联系我们提供您的版权证明和身份证明,我们将在第一时间删除相关侵权信息,谢谢.联系地址:977916607@qq.com