关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

云南大王-用c#每日更换“必应背景图片”为“桌面壁纸”

发布时间:2020-04-13 00:00:00
必应每天都会更换背景图片,都非常漂亮,有的时候还十分惊艳,同时还会根据每个地区的特色不同应用不同的图片。 下面用c#抓取必应每天的背景图片,并实现桌面壁纸的每天自动切换 实现思路 1.通过获取“必应”网页背景图片URL 2.下载图片到本地 3.设置这个图片为壁纸 4.每日自动切换壁纸 1.创建项目文件 使用Windows 窗体应用程序可以不用像控制台应用程序一样弹出黑框 1.先创建 Windows 窗体应用 2.删除窗体文件【这样不会有任何东西弹出】 3.将Program.cs的Main方法中之前的代码删除 4.在Main方法中添加引用 using System; using System.IO; using System.Net; using System.Runtime.InteropServices; using System.Text; using System.Text.RegularExpressions; using Microsoft.Win32; using System.Windows.Forms; 2.通过获取“必应”网页背景图片URL 我们需要先下载得到“必应”这个网页文件,然后找到他的背景图片URL,并提取出来,这里我就需要使用WebClient对象实现下载网页文件的操作,需要使用Regex对象实现提取出背景图片URL操作 这个就是“必应”网页背景图片URL 下载网页文件并提取图片URL代码 /// /// 获取必应图片 /// /// 必应图片URL private static string GetBingImageUrl() { using (var client = new WebClient()) { //设置下载的HTML文件的编码为UTF-8 client.Encoding = Encoding.UTF8; //下载必应中国的首页HTML文件 var html = client.DownloadString("https://cn.bing.com/"); //使用正则得到背景图片地址 var match = Regex.Match(html, "id=\"bgLink\".*?href=\"(.+?)\""); //得到背景图片URL return string.Format("https://cn.bing.com{0}", match.Groups[1].Value); } } 3.下载图片到本地 我们使用 WebClient 对象来进行下载图片文件操作,然后使用Path对象来获取系统临时文件路径,和拼接出保存图片文件的路径 /// /// 下载图片并存储到临时文件夹下 /// /// 图片URL /// 保存下载图片文件的路径 private static string DownloadImageAndSaveFile(string url) { using (var client = new WebClient()) { //创建临时文件目录下的存储必应图片的绝对路径 var filePath = Path.Combine(Path.GetTempPath(), "bing.jpg"); //将图片下载到这个路径下 client.DownloadFile(url, filePath); //返回当前图片路径 return filePath; } } 4.设置这个图片为壁纸 使用Windows系统函数 /// /// Windows系统函数 /// [DllImport("user32.dll", EntryPoint = "SystemParametersInfo")] public static extern int SystemParametersInfo( int uAction, int uParam, string lpvParam, int fuWinIni ); 设置壁纸操作 //设置壁纸 SystemParametersInfo(20, 0, filePath, 2); 运行效果 5.每日自动切换壁纸 方案一、设置程序自启动 /// /// 向注册表注册开机自启 /// Win10需要使用系统管理员权限运行VS才能调试,同理启动这个程序也需要系统管理员权限运行 /// 这个只需要成功注册一次,后面就可以开机自动启动此程序了 /// public static void SetExecSelfStarting() { try { var execPath = Application.ExecutablePath; //当前程序路径 using (var rk = Registry.LocalMachine) { var resigetryPath = Environment.Is64BitOperatingSystem //判断是否为64位系统 ? "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run" : "Software\\Microsoft\\Windows\\CurrentVersion\\Run"; using (var rk2 = rk.CreateSubKey(resigetryPath)) { if (rk2 == null) return; var value = rk2.GetValue("AutomaticWallpaperChange") ?? string.Empty; if (execPath.Equals(value.ToString(), StringComparison.OrdinalIgnoreCase)) return; rk2.SetValue("AutomaticWallpaperChange", execPath); } } } catch (Exception ex) { Console.WriteLine(ex); } } 方案二、设置Windows的 任务计划程序 1.打开Windows的 任务计划程序 2.创建 定时任务 3.设置每天 9点启动 更换成“必应”背景图片为壁纸的程序 6.获取源码 链接 下载源码: https://github.com/liu-zhen-liang/AutomaticallyChangeBingWallpaper.

/template/Home/Zkeys/PC/Static