前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教使用c#开发一个windows动态桌面程序使用视频作为桌面

手把手教使用c#开发一个windows动态桌面程序使用视频作为桌面

作者头像
爱上歆随懿恫
发布2023-11-22 15:38:32
5770
发布2023-11-22 15:38:32
举报
文章被收录于专栏:学点博客

感觉让自己的桌面动起来非常屌,使用其他的软件不是这收费就是下载不了,没法设置。首先看windows窗体查看工具spy++查看windows桌面如图我们需要把我们的窗体,我们只要将我们的窗体放在第二WorkerW下即可。

接下来我们使用vs创建一个windfrom窗体应用程序。

先了解一下基础知识,在C#中,我们不能直接获取窗口控件的句柄,因为C#是托管语言,不直接支持低级别的Windows API函数。但是,我们可以使用一种叫做P/Invoke(Platform Invocation Service)的技术,通过它我们可以调用Windows API函数。

如果你想要获取窗口的句柄,可以使用 FindWindow 或者 FindWindowEx 函数,这些函数都在 user32.dll 中。下面是一个简单的例子:

我们创建一个Utils的类,实现查找窗口句柄需要需要的方法如下:

我们创建的窗体在Load方法中就可以直接调用:Utils.GetWorkerW()和Utils.SetWinParent()两个方法就可以将窗体设置为桌面。现在设置的桌面是什么东西都没有,那么怎么让它动起呢,一种是直接播放一个视频添加一个windows media player控件,直接播放视频。另外一种我们可以使用浏览器在使用h5中video在播放视频或者使用css来写一下特效,可玩性会更高。

在nuget中搜索Microsoft.Web.WebView2安装到项目中,Microsoft.Web.WebView2是一个允许你将Web技术(HTML、CSS和JavaScript)嵌入到本机应用中的控件。它使用Microsoft Edge作为呈现引擎来显示Web内容。WebView2可以让你在本机应用的不同部分嵌入Web代码,或在单个WebView实例中生成所有本机应用。使用WebView2,你可以快速创新Web开发并允许快速部署和迭代。代码共享可以增加跨多个平台的重用,而Microsoft提供支持并添加新功能,以帮助你固定版本分布并选择在应用中打包特定版本的Chromium位。你还可以使用WebView2来添加Web组件到应用中。要开始使用WebView2控件生成和测试应用,你需要安装WebView2 SDK。

在windows11或者windows10中已经有edfe浏览器,但是并不是每个人的电脑都有,我们最好把它放在我们项目中,在官网下载Microsoft.WebView2.FixedVersionRuntime.119.0.2151.58.x86,初始化项目设置所在路径,我放在WebView,同时设置浏览器充满整个屏幕。

接下来设置访问本地html文件即可。

编写一个index.html文件效果如图:使用video播放bg.mp4视频文件,在右上角显示一个3d时钟。

这种桌面后效果:

现在需要优化的地方还有很多,不能实时切换,因为在index.html我们写死了bg.mp4视频地址,需要找些喜欢的视频作为壁纸的话更换了bg.mp4,需要使用cmd 执行taskkill /f /t /im WindWallpaper.exe ,重新启动应用。如果需要的更换打开运行,输入shell:startup,回车,也可以快速打开启动文件夹。创建一个启动的快捷方式,把快捷方式放到启动文件夹,开机之后就会自动启动。

由于我们是使用浏览器作为窗口并播放视频,所以我们就可以发挥想象可以使用css写一下比较大气的时钟、日历、天气等信息,这个就请各位大佬发挥想象了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 学点博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档