
必應每天都會更換背景圖片,都非常漂亮,有的時候還十分驚艷,同時還會根據每個地區的特色不同應用不同的圖片,
下面用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-8
client.Encoding = Encoding.UTF8;
//下載必應中國的首頁HTML檔案
var html = client.DownloadString("https://cn.bing.com/");
//使用正則得到背景圖片地址
var match = Regex.Match(html, "id=\"bgLink\".*?href=https://www.cnblogs.com/"(.+?)\"");
//得到背景圖片URL
return 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 = https://www.cnblogs.com/liuzhenliang/p/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.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/54723.html
標籤:C#
上一篇:五、C#入門—流程控制
下一篇:六、C#入門—字符與字串
