查看: 67|回复: 0

C# 编写一个小而快的 Windows 动态桌面

[复制链接]

2

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-10-8
发表于 2021-12-14 13:36:00 | 显示全部楼层 |阅读模式

开源前段时间写的 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+ 描写了在桌面图标窗口之下绘制窗口的方法,我是阅读了这个博客才实现的功能。



来源:https://www.cnblogs.com/he55/p/15687219.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部