開源自己前段時間使用 C# 撰寫的 Windows 動態桌面軟體,在接下來的博客我將描寫一些技術細節和遇到的一些坑,這個軟體可以把視頻設定成桌面背景播放,不僅如此而且還可以把網頁或一個網頁檔案設定成桌面背景播放,支持 .NET Framework 4.7.2 和 .NET Core 兩個運行時編譯,支持 Windows10/11 系統(支持 Windows8 以上系統,手里沒有 Windows8 系統沒有測驗),
歡迎 Star 和 Fork,GitHub: https://github.com/he55/DreamScene2

特性
- 支持視頻播放(目前使用的 WPF 框架內置的 MediaElement 播放視頻僅支持 .mp4, .mov 視頻檔案,后面增加其他播放引擎)
- 支持 URL 和網頁檔案
- 支持啟動后自動播放
- 支持設定顯示幕
- 支持自動暫停播放

下一步
- GIF 和 APNG 播放
- Live2D 播放
- 使用滑鼠和桌面互動
- 螢屏保護程式
- 更多視頻格式
使用技術
使用到了 WinForms, WPF, WebView2, Native 等技術,各取其優點來實作專案功能
- WinForms: 創建選單簡單,方便處理 Windows 訊息
- WPF: 使用了內置媒體播放功能,播放 .mp4 檔案夠了,其他播放引擎運行時太大
- WebView2: 和 CefSharp 比較 WebView2 有 Edge 加持不需要攜帶一個巨大的運行時,而且安裝簡單下載速度也快有微軟 CDN 加速
- Native: C# P/Invoke 支持的很完善,但是如果需要呼叫大量 Windows API,還是使用 C++ 寫比較簡單,然后提供介面 C 介面給 C# 呼叫
動態桌面軟體原理
如果能把一個視窗放在桌面背景桌面圖示之間,然后在自己的這個視窗播放視頻或者影片,桌面就有動態效果了,作者 Gerald Degeneve 的一篇博客 Draw Behind Desktop Icons in Windows 8+ 詳細描寫了在桌面圖示下面繪制一個視窗的方法,我是參考了這個博客實作的這個功能,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/380786.html
標籤:C#
