開源前段時間寫的 Windows 動態桌面軟件,在接下來的博客我將描寫一些實現細節。這個軟件可以把視頻設置成桌面背景播放,而且還支持把網頁或網頁文件設置成桌面背景。支持 .NET Framework 和 .NET Core 運行時,支持 Windows10/11 系統。
歡迎 Star 和 Fork https://github.com/he55/DreamScene2

下載地址
https://github.com/he55/DreamScene2/releases/latest
特性
-
支持視頻播放
-
支持 URL 和網頁文件
-
支持啟動后自動播放
-
支持設置顯示器
-
支持自動暫停播放

下一步
- GIF 和 APNG 播放
- Live2D 播放
- 鼠標和桌面交互
- 屏幕保護程序
- 更多視頻格式
- 重新設計 UI
- 本地化
- 發布到 Microsoft Store
使用技術
使用到了 WinForms, WPF, WebView2, Native 等技術,各取其優點來實現項目功能
- WinForms: 創建菜單應用簡單,方便處理 Windows 消息
- WPF: 內置媒體播放器支持播放 .mp4、.mov 文件。第三方播放器引擎運行時太大
- WebView2: 不需要攜帶一個巨大的運行時,而且 Windows 11 系統內置了 WebView2
- Native: 如果需要調用大量 Windows API,使用 C++ 寫比較方便。然后導出 C 接口給 C# 調用
動態桌面原理
如果能把一個窗口放在桌面壁紙和桌面圖標之間,然后在自己的這個窗口播放視頻或者動畫,這就是一個簡單的動態桌面軟件了。這篇博客 Draw Behind Desktop Icons in Windows 8+ 描寫了在桌面圖標窗口之下繪制窗口的方法,我是閱讀了這個博客才實現的功能。
