吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13087|回复: 93
收起左侧

[原创工具] 【首发|Python自制|开源】随机桌面背景—让你的桌面壁纸就像一盒巧克力一样..

  [复制链接]
snwjas 发表于 2021-7-2 15:53
本帖最后由 snwjas 于 2021-7-7 16:07 编辑

前言

突然灵光一闪想到的有趣项目,选择使用Python开发,花了几天完成的。克服了很多困难,很多点子基本都实现了。

作为一个资深的吾爱小白,在论坛混迹了这么久了还没发过贴做贡献,实在惭愧,这是我第一个帖子,请大家多多支持,温柔批评。

在发帖前已经搜索过论坛中已经有朋友做过类似的工具了 https://www.52pojie.cn/thread-1369018-1-1.html 。标题不错,我就借来用用了,哈哈,谢谢。希望这个小工具对大家有用。

程序介绍

使用Python编写的自动拉取网络图源并进行自动轮换桌面壁纸的Windows应用程序。

使用它,可以让你的桌面背景像一盒巧克力一样,你永远不知道下一颗是什么味道,是惊还是喜,只有等你去探索去发现。

特性:

  • 自动拉取网络图源,自动切换桌面背景。

  • 可配置。通过配置文件定义壁纸类型、切换间隔等等。

  • 支持多种方式启动。一次性启动(控制台、后台)、开机自启。

  • 支持全局热键配置。目前支持三个热键:上/下一个桌面背景、定位当前桌面背景文件。

PS:程序所使用的壁纸图源为知名壁纸网站wallhaven,程序暂无提供其他图源选择的功能,只能修改参数以获取wallhaven中不同类型的壁纸。

程序控制台界面:

界面

界面

如果对我的项目感兴趣,欢迎点个star,这将是对我的最大支持和鼓励!

项目开源地址:GitHub  |  Gitee

如何使用

  1. 默认壁纸类型。使用默认配置,基本可以满足大部分需求。

  2. 自定义壁纸类型。

    1. 打开壁纸网站wallhaven Random Wallpapers,按照下图步骤选择你的壁纸类型,并复制链接。

      使用1

      使用1

    2. 打开程序的配置文件,修改Api -> url配置项,值为刚复制的链接。

      使用2

      使用2

    3. 重启程序(结束程序再重新打开)。

  3. 自定义更多配置项。请参考配置文件解析。

工作目录

应用程序运行时产生的运行文件保存在应用程序所在根目录的run文件夹下,会产生以下文件或文件夹。

  • 文件夹:log。记录程序的运行日志,程序每天的运行日志保存在一个日志文件,最多保存最近30天的日志。

  • 文件夹:wallpapers。目录下存放网络拉取的当前轮换的桌面壁纸。如果在配置了Task -> retainbgs选项为真,在新壁纸拉取完成时,会把旧的壁纸保存在wallpapers目录下的某文件夹,文件夹命名方式为新壁纸拉取完成的日期时间%Y-%m-%d-%H-%M-%S,否则会删除就的壁纸文件。

  • 文件:config.ini。重要文件!程序运行的所需的配置文件,如果缺失也可以使用默认配置来运行程序。有关可配置选项,请看往下看。

  • 文件:pid。重要文件!记录当前目录应用程序的线程ID,用以检测程序的运行和结束程序的运行。本程序没有把它放到某个安全的地方、或者使用其他方式以实现相对安全的应用程序全局单例运行。

配置文件

程序默认有效配置(该配置会在配置文件缺失时启用),以下;后为字段注释:

[Api]
; 配置你喜欢的图源类型的URL,怎么获取请看上文"如何使用",程序会根据该URL获取它的参数信息并拉取图源。
; 如果配置了这个选项,那么下面的配置项 [Params] 可以不用配置,相反如果配置了 [Params] 那个这个 url 也可以不用配置。
; 如果我两个都配置会怎么样?答案是会取他们两个的参数值,对于重复的参数以 [Params] 配置的为准,并去掉配置值为空的参数。
; PS:给不认识 URL 格式的朋友提醒一下,URL 中 ? 后的为请求参数,以 & 符号分割多个参数,每项的 = 左边为 Key ,右边为 Value 。
url = https://wallhaven.cc/search?categories=111&purity=100&sorting=random&order=desc

[Params]
categories = 111
purity = 100
sorting = random
order = desc
resolutions = 1920x1080,2560x1440

[Task]
; 桌面背景轮换的时间间隔,单位秒
seconds = 520
; 记录当前壁纸的在轮换壁纸列表中下标,无需修改。作用是程序下一次启动可以从该壁纸重新开始切换。
current = 0
; 下载壁纸时的线程数量,它取值在0-32之间,设为0时取值为设备CPU核心数+4。建议不要作修改,使用的图源网站限流,并发太高会导致壁纸下载失败。
threads = 2
; 下载每张壁纸前的随机暂停时间,随机值在两数之间,两个参数以半角逗号分割,参数可以是小数。它同样是控制下载频率的参数,以提高下载成功率,不建议修改。
rndsleep = 0.0,5.0
; 是否保存旧的壁纸,取值为真或假,具体解析请看上面对工作目录下文件夹wallpapers的解析。
retainbgs = 0

; 热键设置说明:只能是特定的小写字符,每个键位以符号 + 分割。最多支持3个修饰键(ctrl、shift、alt和win)和一个普通键。按键对应的可取字符值会在下文"热键字符"中给出。
; 注意:设置单一的一个键作为热键可能会使原有的按键功能失效,所以慎重采取这样的设置。
[Hotkey]
; 是否启用全局热键,取值为真或假。
enabled = 1
; 切换到上一个桌面背景
hk_prev = control+alt+left
; 切换到下一个桌面背景
hk_next = control+alt+right
; 定位到当前桌面背景文件
hk_locate = control+alt+up```

注明:对于取值为真假的配置选项,当值为空、0、false、off都表示假,不区分大少写,其他表示真。

## 运行参数

运行程序时可选择的参数:

- 缺省\-r/\-\-run参数:打开程序菜单控制台

- \-h/\-\-help:查看命令参数帮助选项
- \-r/\-\-run:指定程序的运行方式,仅支持一下三种方式
  - console:使用控制台窗口启动,单次启动
  - background:在后台启动,单次启动
  - powerboot:在后台启动,并且开机自启
- \-l/\-\-log:指定运行日志记录的方式,支持以下4中方式
  - file:仅以文件方式记录
  - console:仅以控制台方式打印
  - both:使用文件记录和控制台打印
  - none:关闭运行日志
- \-s/\-\-lnk:根据给的路径创建程序的快捷方式,如果为空则在当前程序路径创建。第1个参数表示创建快捷的路径,它可以是路径,也可以的包含路径的文件名(文件名需含后缀.lnk),还可以是windows特殊路径,它必须以shell:开头,如使用`shell:desktop`表示桌面路径。第二个以后的参数为指定的快捷方式启动参数,需要使用半角双引号把快捷方式启动参数包起来。

示例:

```shell
随机桌面壁纸.exe -r console --log console -s shell:desktop "--run background --log file"

命令说明:以上这段命令表示以控制台窗口方式启动随机桌面壁纸应用程序,使用控制台的方式打印运行日志,顺便在桌面创建应用快捷方式。如果运行该快捷方式,将会以后台的方式启动随机桌面壁纸应用程序,并使用文件的方式记录运行日志。

热键字符

如果需要设置热键,只能使用以下字符表示键位,而且只能是小写字符,更多的使用请到system_hotkey查看。

  • 修饰键:control、shift、alt、super(说明:win键)
  • backspace、tab、return(说明:回车键)、pause、escape(说明:退出、左上角那个)、space、insert、delete
  • 大键盘:0-9,a-z;小键盘:kp_0 - kp_9;kp_multiply、kp_add、kp_subtract、kp_decimal、kp_divide
  • F键:f1 - f24
  • 媒体键:media_play_pause、media_previous、media_next

其它说明

  • 程序在最后一张壁纸切换完毕后就会重新拉取新的随机壁纸。
  • 程序在Windows锁屏状态下(WIN+L)不会进行切换,但程序暂时还无法检测屏幕的关屏状态,如果你只是关闭了显示器,那么程序仍会自动切换壁纸。
  • 如果设置了热键【上/下一个壁纸】,本程序在内部限制了切换按键每次按下生效的间隔时间,这个值为0.562632,如果上一次切换到本次切换的时间间隔在这个时间内,壁纸切换不会成功。
  • 程序内部限制了拉取壁纸列表的失败次数,这个值为10,如果连续获取失败的次数到达这个值,程序会发出提醒。
  • 程序在拉取壁纸时使用系统(IE)代{过}{滤}理服务器进行请求下载。
  • 如果运行程序时不指定日志的记录方式,那么如果是console运行,日志记录方式默认为both,如果是backgroundpowerboot运行,日志记录方式默认为file

总结

已经很久没碰过Python了,两年多前入门Python做了一下爬虫后就基本没碰过了,这次借着这个项目重拾了一下自己的Python技能。选择Python做的原因主要是Python开发相对简单,丰富的库,可以拿来直接用,满足自己的开发需求,快速开发。但由于我的Python是入门水平的,而且也很久没接触了,项目中难免会有多不规范的地方,请大家多多指教,温柔批评。

还有一点想吐槽的是,Python方便是方便,但是挺有毒。写了几天Python,我再去写Java、JS,我已经不记得写变量类型和大括号了。[/捂脸]

下载

软件分为32位和64位的单文件和绿色版打包,以下为它们各自运行的资源占用情况,大家可以根据自己喜好下载对应的应用程序。

资源占用情况

资源占用情况

蓝奏云:https://lanzoui.com/b00umf2ej (密码:rdb)

天翼云:https://cloud.189.cn/web/share?code=nENBJvIZZnEv (访问码:05mb)

Git:Gitee Releases  |  Github Releases

免费评分

参与人数 14吾爱币 +17 热心值 +14 收起 理由
diamond55 + 1 我很赞同!
catoo1 + 1 + 1 我很赞同!
jiangsg + 1 + 1 热心回复!
a754779549 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
YULONG123 + 1 热心回复!
槿落沉眠 + 1 + 1 谢谢@Thanks!
kickbirds + 1 + 1 谢谢@Thanks!
bearxja + 1 + 1 热心回复!
李光照 + 1 热心回复!
cybr + 1 + 1 支持原创,世界有你更精彩
枫宇I樵夫 + 1 + 1 厉害了,大佬
xianshiqi + 1 + 1 我很赞同!
18023999 + 1 + 1 优惠价给力。
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| snwjas 发表于 2021-7-8 18:06

如果遇到问题,请查看下载链接中是否更新上传了最新版的软件,每次修复问题后会直接上传。

其次欢迎在评论区、GiteeGithub中提交问题或建议。

wanwfy 发表于 2021-9-25 12:02
本帖最后由 wanwfy 于 2021-9-25 12:06 编辑
snwjas 发表于 2021-9-25 10:16
啊,,,我试图复现这个BUG,但是我尝试了所有版本的程序都是正常运行的,并没有出现这个情况的问题,目 ...

其他版本不一定会有这个问题,我是win11最新的预览版,之前也没有问题,升级了两回之后,现在就不行了。估计跟系统有问题,我把你的代码下载回来运行,也是一样的。可能是什么东西影响到这个软件启动了

屏幕截图 2021-09-25 120524.png

屏幕截图 2021-09-25 120502.png
as248199574 发表于 2021-7-4 01:28
黑羽快斗 发表于 2021-7-4 07:54
感觉好厉害,谢谢
ghlewk 发表于 2021-7-4 08:20
好好学习一下PY再来膜拜
落尘LC 发表于 2021-7-4 08:55
辛苦大佬的制作!
coolling 发表于 2021-7-4 10:28
感谢大佬的分享
wangtao0919 发表于 2021-7-4 13:00
感谢分享
头像被屏蔽
youximang 发表于 2021-7-4 13:16
提示: 作者被禁止或删除 内容自动屏蔽
xianshiqi 发表于 2021-7-4 14:18
“生活就像一盒巧克力 你永远不知道下一颗是什么味道”---阿甘正传。
就冲楼主的标题也要来支持一下
枫宇I樵夫 发表于 2021-7-4 19:32
厉害了,大佬,收藏备用,待我学了Python再来。(弱弱的问一下,中间的格式是怎么编辑的?)
52pj.png
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-27 11:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表