# secret-performance-desktop **Repository Path**: SecretOpen/secret-performance-desktop ## Basic Information - **Project Name**: secret-performance-desktop - **Description**: 基于javafx的桌面个性化工具,让桌面炫酷起来 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 149 - **Forks**: 43 - **Created**: 2020-12-30 - **Last Updated**: 2025-07-14 ## Categories & Tags **Categories**: desktop-ui **Tags**: None ## README # secret-performance-desktop ![JDK](https://img.shields.io/badge/JDK-11-green.svg) ![Maven](https://img.shields.io/badge/Maven-3.6.1-green.svg) [![license](https://img.shields.io/badge/license-GPL%20v3-yellow.svg)](https://gitee.com/secret_C/secretBlogBoot/blob/master/LICENSE) ### 介绍 基于javafx的桌面个性化工具 起初只想在做个桌面的cpu和内存监控工具,连续迭代几个版本之后,成了一个桌面的个性化工具。 ### 关于Win11兼容 Win11 24H2 26080之后的版本,由于系统桌面窗口层级以及渲染方式的改变,此软件无法再继续兼容下去,经过对商业壁纸软件Wallpaper Engine的研究,以及使用C#.NET技术的验证,确认Win11桌面目前是使用 DirectX 进行渲染,WebView2和MPV这两个控件由于存在 Intermediate D3D Window 窗口渲染,因此可以继续用来实现动态壁纸。 作者这里也尝试了将D3D窗口样式复制到普通的Win32窗口,引导窗口使用 DirectX 渲染,但还是失败了,只能暂时不了了之,这里提供JAVA针对WIN11 24H2兼容的实现思路 前提:24H2中 WorkerW窗口更变为了Program窗口的子窗口,且在 SHELLDLL_DefView 窗口的z轴下方,我们需要将窗体嵌入 WorkerW 子窗口,或者 WorkerW 与 SHELLDLL_DefView 中间的同级窗口 1. 使用JNI技术将WebView2/MPV的DLL包装成JAVA GUI控件 2. 使用我上面说到的思路,引导窗体进行 DirectX 渲染 当然,如果使用以上的方式,为何不直接使用C++/C#呢,甚至Tauri这种基于浏览器内核的跨平台技术。 该项目会维护下去,仅限24H2以下版本,只能期待后续JAVA GUI应用生态丰富起来,或者操作系统后续更新桌面支持普通WIN32窗口渲染 基于C#.NET开发的壁纸软件已经着手准备了,进度较慢,看情况再决定是否开源出来 ### 功能 * cpu和内存的实时监控 * 开机自动启动 * 自定义logo * 自定义主题颜色 * 鼠标拖拽 * 设置纵向或横向布局 * 桌面时钟 * 黑客帝国代码雨 * 雪花飘落 * 樱花飘落 * 窗口显示在桌面与图标之间 * 动态壁纸 wallpaper(支持视频、web) * 插件扩展 ***内置插件:*** 鼠标跟随-彩色粒子特效 ### 互动交流群 **企鹅群:635508577** ![avatar](https://images.gitee.com/uploads/images/2021/0307/150703_c5b23743_1815246.png) ### 使用方法 下载exe可执行文件: **目前版本:v2.1.2** * 下载windows最新版本: [蓝奏云](https://secretc.lanzous.com/b01zwjn2d) * [更多历史发行版本下载](https://gitee.com/SecretOpen/secret-performance-desktop/releases) **视频壁纸说明** 从2.0.0开始,视频壁纸使用vlc播放器内核,vlc播放器支持的视频格式均可使用, 且性能相比javafx自带媒体引擎有很大提升,本项目提供vlc下载 当前发行版使用的vlc下载地址: * [当前使用vlc-3.0.12-win64](https://gitee.com/SecretOpen/secret-performance-desktop/attach_files/596124/download) * [历史版本所对应vlc下载](https://gitee.com/SecretOpen/secret-performance-desktop/attach_files) **更新说明** 由于没有在线自动更新功能,保留配置信息只需将上个版本config目录中的文件覆盖到新版本config目录即可 ***视频壁纸下载*** 链接:https://pan.baidu.com/s/119_HUU7zLoJ3E9_-tghY4g 提取码:9rb0 ![avatar](doc/images/media1.png) ***web壁纸*** 默认提供的web壁纸在wallpaper/web目录下 ***自定义动态壁纸安装*** 建议将自定义的壁纸放置在 ./wallpaper/对应类型 目录中,方便管理 ***插件安装*** 将插件jar包放入plugins目录下,退出程序重启,新安装的插件默认为打开状态。 点击托盘中的插件扩展可以管理插件。 目前提供默认插件: 鼠标跟随-彩色粒子特效 截图: ![avatar](doc/images/img3.png) ### 插件开发 ***详见:[secret-plugin](https://gitee.com/SecretOpen/secret-plugin)*** ### 核心依赖 | 组件 | 版本 | | ---- | ---- | | javafx | 15.0.1 | | oshi-core | 5.3.7 | | jna | 5.6.0 | | vlcj-javafx | 1.0.2 | ### 源码说明 **源码运行说明** 从2.0.0开始,运行视频壁纸功能需要先安装vlc播放器 (播放器对应版本及地址上方均已给出)。 **打包说明** maven 执行 package 使用exe4j 将jar包打为exe文件,exe4j配置在doc/exe4j目录下 ### 截图 ![avatar](doc/images/img1.png) ![avatar](doc/images/img2.png) ### 局限性 * 窗口置于底层不兼容部分系统 使用spy++查看窗口层级关系 ![avatar](doc/images/limit1.png) 如果为以上层级,则说明桌面和图标融合在了一起,这种情况无法兼容窗口置于图标下层。 **下图情况大部分可以实现(还是存在特殊不兼容情况,这里就不举例了):** ![avatar](doc/images/limit2.png) 实现原理:[Draw Behind Desktop Icons in Windows 8+](https://www.codeproject.com/articles/856020/draw-behind-desktop-icons-in-windows) ### 联系作者 点击这里给我发消息 qq:1029693356 ### 致谢 本项目有参考他人的代码,感谢各位大神的付出! * 广大的开源开发者 * [Oshi](https://github.com/oshi/oshi) OSHI是Java的免费的基于JNA的(本机)操作系统和硬件信息库。 * [vlcj](https://capricasoftware.co.uk/projects/vlcj) vlcj是对VLC的一个Java封装。