C#の「壁紙」として日々「でなければならない背景画像」と交換してください

ここに画像を挿入説明
ビングは、毎日の背景画像を置き換える非常に美しいです、時には非常に素晴らしい、および画像の各領域のアプリケーションの特性によって異なりますされます。
以下は、毎日、C#の背景画像にクロールされ、毎日の壁紙自動切替デスクトップを実現するために

アイデアの実現

  • 取得することにより1ページの背景画像URL「でなければなりません」
  • お近くに絵をダウンロード2.
  • 3.壁紙としてこの画像を設定します
  • 4.毎日の自動切り替えの壁紙

プロジェクトファイルを作成します。1.

Windowsフォームアプリケーションを使用してブラックボックスは、コンソールアプリケーションとしてポップアップしないようなことがあり

  • 1. Windowsフォームアプリケーションを作成します
  • 2.フォームファイルを削除[この]には何もポップを持っていません
    ここに画像を挿入説明
  • 3. Program.csのコード削除の主な方法に先立ち
    ここに画像を挿入説明
  • メインメソッドの参照を追加します。4.
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に行って、抽出された、ここで私が使用する必要があります、ページファイル「でなければならない」、ダウンロードする必要がありますWebクライアントオブジェクトインプリメンテーション・ファイルのダウンロードページ、あなたが使用する必要があります正規表現オブジェクトの実装作業は、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=\"(.+?)\"");
        //得到背景图片URL
        return string.Format("https://cn.bing.com{0}", match.Groups[1].Value);
    }
}

お近くへ3.ダウンロード写真

私たちは、使用します Webクライアント イメージファイルをダウンロードするためのオブジェクト、そして使用オブジェクトの一時ファイル・システム・パスへのパスを取得し、モザイクの画像ファイルを保存します

/// <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);

業績
ここに画像を挿入説明

毎日自動切替壁紙

オプション1、スタートからプログラムを設定します

/// <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);
    }
}

オプションIIは、Windowsのタスクスケジューラに設定します

  • 1. Windowsのタスクスケジューラ
  • スケジュールされたタスクを作成します。2.
  • 3.午前九時スタートを交換毎日壁紙のプログラムとして、背景画像「でなければなりません」
    ここに画像を挿入説明
    ここに画像を挿入説明
    ここに画像を挿入説明
    ここに画像を挿入説明
    ここに画像を挿入説明
    ここに画像を挿入説明
    ここに画像を挿入説明

ソースリンクを取得します。6.

ダウンロード出典:https://github.com/liu-zhen-liang/Au​​tomaticallyChangeBingWallpaper

おすすめ

転載: www.cnblogs.com/liuzhenliang/p/AutomaticallyChangeBingWallpaper.html