当前位置:首页 > 技术 >

大气闪动壁纸怎么用(开灯特效壁纸设置方法)

来源:原点资讯(www.yd166.com)时间:2023-04-16 11:37:59作者:YD166手机阅读>>

这下我就懵了,怎么这也不行,那也不行呢?

实际上这里是有一个套路的,而这个套路着实让我琢磨了很久很久!

什么套路呢,咱们往下看!

我查阅了网上大量的资料,在不断的实验中我发现除了拥有子窗口的 WorkerW 之外,其他所有的 WorkerW 都是隐藏不可见的。

大气闪动壁纸怎么用,开灯特效壁纸设置方法(9)

而实际有效的做法是,我们需要将程序窗口嵌入到第二个可见非隐藏的 WorkerW 之上才行。

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

让 WorkerW窗口可见并且变透明

前面我们说过,按下 Win Tab 键可以切换多桌面,当我们这么一切换时,系统就会产生多个 WorkerW 窗口用于过渡切换效果。

所以我们可以用程序模拟按下 Win Tab 键。

不过我尝试模拟按键后,发现有窗口闪动的现象,不是太理想的状态,于是我找到了网上的资料。

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

这也正是我们前面所看到的,子窗口被“抢过去”的效果。

需要注意的是,这是在 Vista 之后的版本才有效,嗯,可以理解为开启 Aero 效果的系统。

我用 VB 代码很容易就实现了,就像下面这样。

' 获取 Progman 句柄 lngDesktopHwnd = FindWindow("Progman", vbNullString) ' 然后向 Progman 发送 0x052C 使其产生 WorkerW SendMessage lngDesktopHwnd, &H52C, 0, 0遍历查找目标 WorkerW窗口

生成了我们想要的 WorkerW 窗口后,我们就要想办法去找到那个目标窗口,也就是第二个可见的 WorkerW 窗口。

切记,这个 WokerW 窗口是可见非隐藏的,并且同时不包含任何子窗口的。

我的遍历算法能用但灰常粗糙,你们简单参考,自己改进哈。

' 获取桌面句柄 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)) <> UCase("WorkerW") lngWorkerW = GetWindow(lngWorkerW, GW_HWNDNEXT) GetClassName lngWorkerW, lpClassName, 255 Loop End If Else ' 查找下一个同级的类窗体句柄 lpClassName = Space(255) Do While UCase(Left(lpClassName, 7)) <> UCase("WorkerW") lngWorkerW = GetWindow(lngWorkerW, GW_HWNDNEXT) GetClassName lngWorkerW, lpClassName, 255 Loop End If Loop将程序窗口变成目标 WorkerW窗口的子窗口

看到没,就像下图这样,我们的程序窗口跑到了第二个可见 WorkerW 的下面了。

大气闪动壁纸怎么用,开灯特效壁纸设置方法(10)

参考代码如下:

' 将程序窗口设定为 WorkerW 的子窗口,WorkerW 成为父窗口 lngOriginalParentHwnd = SetParent(Me.hwnd, lngWorkerW) ' 最后在程序退出时别忘记再变回来 lngTmpHwnd = SetParent(Me.hwnd, lngOriginalParentHwnd)

最后,我们看到了这样的效果,窗口终于跑到了图标的后面,耶!

大气闪动壁纸怎么用,开灯特效壁纸设置方法(11)

效果演示

后续还有很多工作需要继续,比如播放器的操作控制,前景布局等等。

不过这些繁杂的事不算主要问题,我们只要基本能够实现桌面动态播放视频即可。

就像下面,效果还算可以吧。

点击浏览,选择视频文件。

大气闪动壁纸怎么用,开灯特效壁纸设置方法(12)

栏目热文

动感壁纸怎么设置(动态壁纸怎么一键设置)

动感壁纸怎么设置(动态壁纸怎么一键设置)

如何制作会动的图片?不知道各位小伙伴们在日常的生活中,喜不喜欢分布图文到一些短视频平台呢、我们除了直接发布图文之外,其实...

2023-04-16 11:33:32查看全文 >>

闪动壁纸该怎样设置图片(怎么正确使用闪动壁纸)

闪动壁纸该怎样设置图片(怎么正确使用闪动壁纸)

[闽南网]抖音封面是能够决定别人对你的第一印象,如果你的抖音封面足够吸引人的话也是会给你增加很多人气的哦~那么抖音封面怎...

2023-04-16 11:13:42查看全文 >>

闪动壁纸是怎么用的(会动的闪动壁纸怎么弄)

闪动壁纸是怎么用的(会动的闪动壁纸怎么弄)

微PE工具箱是小编多年来一直使用的一款轻量级的WinPE工具了,WinPE最新版该内核已直接支持绕过TPM2.0安装原版...

2023-04-16 11:37:25查看全文 >>

闪动壁纸怎么设置图片(闪动的图片如何设置壁纸)

闪动壁纸怎么设置图片(闪动的图片如何设置壁纸)

奇酷手机旗舰版搭载的是360OS系统,360 OS作为一款刚刚推出的基于Android 5.1深度定制的手机系统,虽然还...

2023-04-16 11:20:13查看全文 >>

帮人解封微信号的后果(帮别人解封微信号有什么后果)

帮人解封微信号的后果(帮别人解封微信号有什么后果)

腾讯日前公布的2021年第一季度财报显示,微信月活跃用户量已经达到12.41亿。当前微信用户数量庞大,微信使用深入社会生...

2023-04-16 11:21:23查看全文 >>

透明闪动壁纸怎样设置(闪动壁纸在哪里用透明的)

透明闪动壁纸怎样设置(闪动壁纸在哪里用透明的)

透明LED显示屏,如何实现稳定运行?透明LED显示屏已经成为了现代城市建设的一部分,无论是商业广告,还是公共信息展示,都...

2023-04-16 11:10:33查看全文 >>

闪动壁纸(闪动壁纸下载安装)

闪动壁纸(闪动壁纸下载安装)

早晨,当朝霞舞动着她柔曼的翅膀,将我们的梦轻轻唤醒,一丝清新的空气,一缕带给我们快乐的阳光,多好啊。早晨!睁开迷人的双眼...

2023-04-16 11:17:52查看全文 >>

闪动壁纸设置(闪动壁纸该怎么做)

闪动壁纸设置(闪动壁纸该怎么做)

·原图上传,记得查看原图再保存。,...

2023-04-16 11:08:15查看全文 >>

sp和sn机油区别(机油sn级好还是sp级好)

sp和sn机油区别(机油sn级好还是sp级好)

大家在购买或者更换机油的时候,都会发现咱们机油包装上都会标注“SP”或者“SN”等字样。那么,这是什么意思,对汽车发动机...

2023-04-16 11:01:08查看全文 >>

文档排行