如何让win10系统拥有一天一换的壁纸

算法分
• 阅读 1069

前言

今天去必应搜东西的时候,看到必应的壁纸又换了,顿时心下羡慕,有一个想法忽然冒出来:为啥我不能拥有这么多的壁纸呢?


分析过程

我去看了看win10的壁纸切换栏,如果想要动态切换壁纸的时候,有这么一个图片切换频率,但是图片只能从自己电脑的文件夹获取

如何让win10系统拥有一天一换的壁纸

下一步就非常清晰明了了,只要我拥有足够多的图片源,那么就可以随意切换了


接口

程序员就要有程序员的想法,我去网上搜了搜必应的图片接口
https://api.xygeng.cn/Bing/

代码实现

这个是一个maven项目

代码很简单,我相信各位都看得懂

package com.howling;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Calendar;

public class Photo {
    public static void main(String[] args) throws Exception {

        //线程礼让两分钟,可以随意修改
        Thread.sleep((long) (2 * 60 * 1000));

        //获得年月日
        Calendar calendar = Calendar.getInstance();
        int year, month, day;
        year = calendar.get(Calendar.YEAR);
        month = calendar.get(Calendar.MONTH) + 1;
        day = calendar.get(Calendar.DAY_OF_MONTH);

        //必应接口
        String url = "https://api.xygeng.cn/Bing/";

        URL imageURL = new URL(url);

        //打开连接
        URLConnection connection = imageURL.openConnection();

        //设置连接主机超时时间
        connection.setConnectTimeout(5 * 1000);
        //设置读取超时时间
        connection.setReadTimeout(5 * 1000);

        //获取输入流
        InputStream stream = connection.getInputStream();

        byte[] bytes = new byte[1024];

        int len;

        //定义存储路径位置,各位可以随意修改
        File saveFile = new File("C:\\Users\\user\\Pictures\\Win10壁纸");

        if (!saveFile.exists()) saveFile.mkdirs();

        //设置输出位置,输出的名字就是当前年月日,比如今天:20200706
        FileOutputStream outputStream = new FileOutputStream(saveFile.getPath() + "\\" + year + month + day + ".jpg");

        while ((len = stream.read(bytes)) != -1) outputStream.write(bytes, 0, len);

        //关闭
        outputStream.close();
        stream.close();

    }
}
==关于线程礼让==

注意这里有一个线程礼让的部分,原本的话我是没有加入这个东西的

但是后来电脑重启之后我检查了一下,因为电脑还没来得及联网,报错了java.net.UnknownHostException

我找了半天的解决方法也没解决这个问题,最后没办法只能礼让两分钟,等电脑自动联网再说

一开始还不是两分钟,是三十秒,后来又试了一次,又报错了,那没办法,只能设置成了两分钟

各位这里也可以随意修改

==关于图片名字==

一开始我打算的是使用UUID来获取唯一值

但是因为之后这里设置的是每次电脑开机之后就会自动执行这个代码

假如一天之内重启多次电脑,那么就有很多重复的图片,所以干脆使用日期命名

这样即使一天重启了电脑,也会替换掉原来的图片

第二天,必应的图片就换掉了,那也就不存在问题了

Jar包

打为jar包,这个需要在pom.xml文件下加入以下部分来打为jar包

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>com.howling.Photo</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
因为我没有用到任何的外部依赖,所以这样做是没有问题的

如果你要改变main函数,只需要改动mainClass即可

别忘记在pom.xml中改为jar类型:<packaging>jar</packaging>

pom文件加完之后,直接点击maven中的package即可

如何让win10系统拥有一天一换的壁纸

打包完成之后在target目录下可以看到打出来的jar包

假如找不到target是因为没有点击

如何让win10系统拥有一天一换的壁纸

Jar转EXE

工具

我们需要开机自动执行这段代码,据我了解有那么几种方式:

  1. bat
  2. exe

我们选择exe的方式,所以需要将jar包转为exe,需要一个工具:exe4j

官方下载地址:https://exe4j.apponic.com/dow...

安装之后是这么个界面:

如何让win10系统拥有一天一换的壁纸

Jar转EXE

  1. next

    如何让win10系统拥有一天一换的壁纸
  2. 选择jar转exe

    如何让win10系统拥有一天一换的壁纸
  3. 起名和选择输出路径

    如何让win10系统拥有一天一换的壁纸
  4. 选择64/32位

    如何让win10系统拥有一天一换的壁纸

    我相信各位大部分都是64位

  5. 给app起名字

    如何让win10系统拥有一天一换的壁纸

    这一步貌似应该放到第四步。。

  6. 选择jar包

    如何让win10系统拥有一天一换的壁纸
  7. 选择main函数并点击下一步

    如何让win10系统拥有一天一换的壁纸
  8. 选择你的jre版本

    如何让win10系统拥有一天一换的壁纸
  9. 一直下一步,直到导出exe文件

    如何让win10系统拥有一天一换的壁纸

开机启动

不管使用哪种方式,都需要开机启动,打开命令行,输入shell:startup

如何让win10系统拥有一天一换的壁纸

把exe文件放进去,当电脑开机后会自动执行

如何让win10系统拥有一天一换的壁纸


重启电脑一次看看吧,文件夹内是不是多了图片

Windows设置

如何让win10系统拥有一天一换的壁纸

这里是win10设置,其他版本的我这里没有,自行摸索吧
点赞
收藏
评论区
推荐文章
仲远 仲远
2年前
Dynamic Wallpaper for Mac(视频动态壁纸)
DynamicWallpaperforMac是一款漂亮炫酷的动态壁纸软件,告别单调的静态壁纸,拥抱活泼的动态壁纸。既可选择App内现有视频素材,也可导入本地视频,同时可以将视频设置为您的电脑屏保。安装软件:DynamicWallpaper动态壁纸功能特色2
阮小五 阮小五
2年前
高清动态Mac壁纸资源站分享
好多朋友都会给自己的电脑桌面更换自己喜欢的壁纸,有些人更是壁纸收集者,看到好看的就想收藏起来。今天小编就给大家分享一个拥有超多!这个网站的壁纸种类挺全,比如风景类、城市类、游戏类、动漫类、主题类、星系类等。界面干净,无广告,看起来舒适又大气。如果你不确定这
布袋罗汉 布袋罗汉
2年前
好看的动态壁纸Dynamic Wallpaper
DynamicWallpaper是一款Mac平台上的动态壁纸应用程序,它可以根据时间等因素动态切换壁纸,提供更加生动和多样化的桌面体验。DynamicWallpaper包含了多个动态壁纸,用户可以根据自己的喜好选择和切换。这些动态壁纸可以根据时间等因素进行
Aidan075 Aidan075
4年前
用Python生成自己专属的手机春节壁纸
↑关注置顶 有趣的不像个技术号大家好,我是朱小五马上就要过年了,要不要换一个喜气洋洋、洋洋洒洒、洒扫应对、对牛弹琴的手机壁纸呢?今天小五给大家表演的节目是:用Python生成自己独一无二的手机壁纸。首先我们需要选择一个现成的手机壁纸作为模板,我选择了这种以自己姓氏为主题的专属手机壁纸。<< 左右滑动查看更多 这其实是个之
绣鸾 绣鸾
1年前
Dynamic Wallpaper for Mac视频动态壁纸
是一款Mac平台上的动态壁纸应用程序,它可以根据时间等因素动态切换壁纸,提供更加生动和多样化的桌面体验。DynamicWallpaper包含了多个动态壁纸,用户可以根据自己的喜好选择和切换。这些动态壁纸可以根据时间等因素进行自动切换,也可以手动进行切换。除
公孙晃 公孙晃
1年前
「Macos高清视频动态壁纸」Dynamic Wallpaper 16.6中文版
是一款Mac平台上的动态壁纸应用程序,它可以根据时间等因素动态切换壁纸,提供更加生动和多样化的桌面体验。DynamicWallpaper包含了多个动态壁纸,用户可以根据自己的喜好选择和切换。这些动态壁纸可以根据时间等因素进行自动切换,也可以手动进行切换。除
流浪剑客 流浪剑客
1年前
苹果壁纸软件:Irvue for Mac最新激活 支持M1
是一款专为Mac用户设计的壁纸软件,可以帮助用户轻松管理和切换桌面壁纸。它提供了大量的高清壁纸资源,涵盖了风景、美女、动漫、明星等多个分类,可以满足不同用户的审美需求。IrvueMac具有以下主要特点:丰富的壁纸资源:提供了数千张来自Unsplash的高分
流浪剑客 流浪剑客
1年前
Dynamic Wallpaper 16.7中文破解下载「最新」
是一款Mac平台上的动态壁纸应用程序,它让用户可以使用动态壁纸来为自己的桌面增添一些活力。这个软件可以使用几乎任何类型的动态视频或者图片,包括GIF、MOV、MP4等等,并且支持高清晰度的视频和超过24小时的时间长度。DynamicWallpaper的用户
公孙晃 公孙晃
1年前
Dynamic Wallpaper for Mac 16.2中文版「Macos动态壁纸」
是一款能够在Mac电脑上运行的动态壁纸应用。它可以让用户的电脑桌面根据时间、位置和天气等因素实时更新不同的壁纸,从而让桌面焕然一新,提高工作效率。此款应用需要OSXMavericks或更高版本才能运行,能够为Mac用户提供十分漂亮的壁纸。它包含了多种类型的
燕青 燕青
1年前
Macos超好用的动态桌面壁纸:iWall
是一款非常有趣的动态桌面壁纸软件,可以使用任何格式的漂亮视频,音频,图片,动画,Flash,gif,swf,程序,网页,网站做为您的动态壁纸,动态桌面,并且可以进行交互。iwall动态壁纸软件功能多,使用简单,体积小巧,不占用资源,运行流畅稳定安全。
流浪剑客 流浪剑客
1年前
Macos桌面视频动态壁纸推荐:Dynamic Wallpaper v16.2中文版
是一款Mac平台上的动态壁纸应用程序,它可以根据时间等因素动态切换壁纸,提供更加生动和多样化的桌面体验。DynamicWallpaper包含了多个动态壁纸,用户可以根据自己的喜好选择和切换。这些动态壁纸可以根据时间等因素进行自动切换,也可以手动进行切换。除
算法分
算法分
Lv1
墙里秋千墙外道。墙外行人,墙里佳人笑。笑渐不闻声渐悄,多情却被无情恼。
文章
8
粉丝
0
获赞
0