在线工具

必应每天都会更换背景图片,都非常漂亮,有的时候还十分惊艳,同时还会根据每个地区的特色不同应用不同的图片。
下面用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代码

/// <summary>
/// 获取必应图片
/// </summary>
/// <returns>必应图片URL</returns>
private static string GetBingImageUrl()
{using (var client = new WebClient()){//设置下载的HTML文件的编码为UTF-8client.Encoding = Encoding.UTF8;//下载必应中国的首页HTML文件var html = client.DownloadString("https://cn.bing.com/");//使用正则得到背景图片地址var match = Regex.Match(html, "id=\"bgLink\".*?href=\"(.+?)\"");//得到背景图片URLreturn string.Format("https://cn.bing.com{0}", match.Groups[1].Value);}
}

3.下载图片到本地

我们使用 WebClient 对象来进行下载图片文件操作,然后使用Path对象来获取系统临时文件路径,和拼接出保存图片文件的路径

/// <summary>
/// 下载图片并存储到临时文件夹下
/// </summary>
/// <param name="url">图片URL</param>
/// <returns>保存下载图片文件的路径</returns>
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系统函数

/// <summary>
/// Windows系统函数
/// </summary>
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern int SystemParametersInfo(int uAction,int uParam,string lpvParam,int fuWinIni
);

设置壁纸操作

//设置壁纸
SystemParametersInfo(20, 0, filePath, 2);

运行效果

5.每日自动切换壁纸

方案一、设置程序自启动

/// <summary>
/// 向注册表注册开机自启
/// Win10需要使用系统管理员权限运行VS才能调试,同理启动这个程序也需要系统管理员权限运行
/// 这个只需要成功注册一次,后面就可以开机自动启动此程序了
/// </summary>
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.

推荐开发人员工具
在线工具

用c#每日更换“必应背景图片”为“桌面壁纸”相关推荐

  1. 自定义更换IDEA背景图片

    自定义更换IDEA背景图片 第一步 进入IDEA ,然后一次打开 File→Settings. 接下来如图所示 第二步 点击 Background Image 如下图所示 第三步 我们就可以添加背景图 ...

  2. 如何更换电脑背景图片?这样做很简单!

    案例:怎样把电脑背景图换成自己的照片? [我的电脑背景图片是系统自带的壁纸,不太好看,我想把它换成自己的照片.有没有小伙伴知道电脑怎么更换背景图片?在线求个简单的方法!] 在日常生活中,我们常常需要更 ...

  3. [Python] 抓取必应每日一图,设置为桌面壁纸

    在Windows 10 64位系统环境下,使用 Python 3.6 进行图片抓取和设置壁纸操作. 其中,图片链接 https://area.sinaapp.com/bingImg/ 为 Bing 每 ...

  4. windows7 设置png格式图片为桌面壁纸

    windows7 设置png格式图片为桌面壁纸 项目中有一个小需求----自动设置壁纸.按理说,这种小需求理论上都很容易啦,没有必要做笔记了.而在实际开发过程还是遇到了各种问题.当然这是由于windo ...

  5. 用python每日更换“必应图片”为“桌面壁纸”

    不少同学都知道,必应每天都会更新壁纸,都十分漂亮,有时候还十分惊艳,同时还会根据每个地区的特色应用不同的壁纸. 那么,如何让自己的电脑每天同步必应每日图片作为桌面背景呢? 下面用python脚本抓取必 ...

  6. 小玩意--用必应每日图片换桌面壁纸(Python)

    必应 的每日图片还是不错的,换作自己的桌面壁纸挺有意思的. 这种简单的小程序实现网络上还是很多的,但还是想亲手写一写. 把代码分享一下 # 获取必应每日图片 import os import path ...

  7. 简单两步更换idea背景图片--超级简单

    第一步安装插件 第二步更换背景图 好了讲完了 是不是已经会了,没会的话就接着往下看吧,哈哈 其实就是安装个插件的事情, 先告诉你们插件名称:Background Image Plus 1.安装插件 F ...

  8. 每天更新bing首页图片为桌面壁纸

    功能 每天自动从bing首页下载首页图片,再添加该图片文字描述的水印,然后设置到桌面壁纸. 链接分析 打开bing首页,开chrome调试,捕捉network,再点击上一张,下一张时可以看到一个比较规 ...

  9. .NET Core MVC更换网页背景图片

    目录 第1步 第2步 第3步 第4步 弟5步 按照我的步骤走,一步一步找到文件并更改! 第1步 你的app\wwwroot\ 第2步 你的app\wwwroot\css\site.css 第3步 在c ...

最新文章

  1. C++基于TCP/IP简单的客户端、服务器通信程序实例
  2. 发掘数据中的信息 -- 数据探索之描述性统计
  3. 2019 年,容器技术生态会发生些什么?
  4. Java 内存模型 与 高效并发
  5. NetDevOps — NETCONF 协议
  6. Mads Torgersen介绍C# 7及后续版本新特性
  7. 独立式环境与宿主式环境————《标准C语言指南》读书笔记01
  8. 冗余的Runnable代码
  9. 用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转)
  10. 简单总结PPPoE设置
  11. 利用rsync+inotify搭建实时同步系统
  12. 本地可以使用oracle吗,Oracle - PLS-00642:SQL语句中不允许使用本地集合类型
  13. GNS3 中使用 Docker 容器
  14. Gpower软件真不错
  15. NP完全问题贪婪算法
  16. 3dmax2020卸载/安装失败/如何彻底卸载清除干净3dmax2020注册表和文件的方法
  17. build/envsetup.sh 简介
  18. 计算机专业学生该如何提高自己?提升自己的专业技能?
  19. 排位赛[USACO20JAN]Loan Repayment(二分+数学)
  20. JS返回到上一页的三种方法

热门文章

  1. 美国专利法中方法权要(method)直接侵权的考量
  2. VBS基础篇 - 循环语句(1) - Do 循环
  3. wordpress大前端主题DUX7.1免授权
  4. Exchange 2010通配符SSL证书安装文档
  5. linux3.4.2 触摸屏驱动
  6. nvivo怎么处理访谈记录_Java自然语言处理-第二版:书评和访谈
  7. 【收藏】详解FIR滤波器和IIR滤波器的区别
  8. 雷达覆盖_ssl1232_计算几何
  9. bigemap如何切换外网IP地址
  10. 蓝桥杯2017年第八届蓝桥杯