# 996仙人壁纸 **Repository Path**: one996/996-immortal-wallpaper ## Basic Information - **Project Name**: 996仙人壁纸 - **Description**: 简短的一生应有难忘的时刻。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2023-11-24 - **Last Updated**: 2025-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 996仙人壁纸 #### 介绍 我们这一生啊,总得熬夜的。 1、实现原理: 把一个窗口放在桌面壁纸和桌面图标之间,然后在自己的这个窗口播放视频或者动画,这就是一个简单的动态桌面软件。软件是将窗体作为背景,使用WebView2显示内容,通过发送通知实现更新壁纸的效果。 2、基础WPF的动态壁纸软件,支持HTML、图片、视频作为壁纸。可以自行添加各种壁纸,定时更新壁纸。开机自启、壁纸下载等功能。 3、基于NET8环境开发,使用了CommunityToolkit.Mvvm、Hardcodet.NotifyIcon.Wpf、Microsoft.Web.WebView2、Newtonsoft.Json等包。 #### 软件架构 1、DynamicWallpaper 1、BackgroundWindows 背景窗口 1、ffmpeg-6.1-full_build 没有用 1、Hook 没有用 1、Hook 没有用 1、HtmlGame 放html背景和htm游戏 1、Images 图片文件 1、Models 1、Resource 一些静态资源 1、VM MVVM用的viewmodel 1、CommonHelper 一些主要用的操作方法 1、Config 配置类 1、MainWindow2 主窗体 2、One996.ControlLibrary 描述:一些自定义的控件库,重写了button、textblock、checkbox、radiobox几个控件,实现了一个自定义的头像控件以及几个动态效果。 3、One996.Demo 1、测试项目 #### 核心代码 1、 主要显示窗体:BackgroundPage 2、将窗体设置为背景图层 public static void RunWindows() { //Process ffplay = new Process(); try { CommonHelper.Logs("Windows显示视频壁纸..."); //把之前的关掉,否则会重复启动。 //KillPro(); //找到最初始的图层 IntPtr hProgman = DllImports.FindWindow("Progman", "Program Manager"); // 分裂图层 DllImports.SendMessageTimeout(hProgman, 0x52c, 0, 0, 0, 100, out _); IntPtr workerW = IntPtr.Zero; do { //找到中间图层并让它变透明 workerW = DllImports.FindWindowEx(IntPtr.Zero, workerW, "workerW", null); if (DllImports.GetParent(workerW) == hProgman) { DllImports.ShowWindow(workerW, 0); } } while (workerW != IntPtr.Zero); background = new BackgroundWindows.BackgroundPage(); background.Width=CommonHelper.Config.X; background.Height=CommonHelper.Config.Y; background.WindowState = WindowState.Normal; background.Left = 0; background.Top =0; background.WindowStartupLocation=WindowStartupLocation.Manual; background.Show(); //((HwndSource)PresentationSource.FromVisual(background)).AddHook(myHook); var ints= ((HwndSource)PresentationSource.FromVisual(background)).Handle; //将这个动态视频设为最下面那个图层的子图层 DllImports.SetParent(ints, hProgman); } catch (Exception ex) { //show.Content="异常"; CommonHelper.Logs("壁纸异常:"+ex); } finally { } } #### 安装教程 下载exe文件安装,不要安装在C盘!!!! 链接:https://pan.baidu.com/s/1Irnv8-PyzEmwgRIw22vcpw?pwd=5uid 提取码:5uid --来自百度网盘超级会员V6的分享 #### 使用说明 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 ![输入图片说明](d47cee124f384816131138f8c30e9bd1.png) ![输入图片说明](4af8eb786cbe455c13aba052a0397b83.png)