惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
S
Security @ Cisco Blogs
月光博客
月光博客
V
Vulnerabilities – Threatpost
The Hacker News
The Hacker News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cisco Talos Blog
Cisco Talos Blog
J
Java Code Geeks
Scott Helme
Scott Helme
S
Schneier on Security
腾讯CDC
博客园 - 司徒正美
L
Lohrmann on Cybersecurity
Latest news
Latest news
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
V
Visual Studio Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
小众软件
小众软件
博客园 - Franky
Attack and Defense Labs
Attack and Defense Labs
美团技术团队
IT之家
IT之家
TaoSecurity Blog
TaoSecurity Blog
SecWiki News
SecWiki News
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
PCI Perspectives
PCI Perspectives
量子位
T
Threat Research - Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
Cyberwarzone
Cyberwarzone
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
L
LINUX DO - 最新话题
Forbes - Security
Forbes - Security
罗磊的独立博客
宝玉的分享
宝玉的分享
Simon Willison's Weblog
Simon Willison's Weblog
雷峰网
雷峰网
www.infosecurity-magazine.com
www.infosecurity-magazine.com
人人都是产品经理
人人都是产品经理
N
News and Events Feed by Topic

博客园 - SHARP-EYE

Processing在P2D模式下使用 tint() 方法的注意事项 · 只对 image() 和纹理有效 Processing 的 sketch.properties 机制以及主程序与文件夹解耦的具体细节 Processing P2D 模式鼠标约束 · 限制在窗口内 · 技术报告 Kimi Code CLI 系统指令的摸索 以及 开发实战经验分享 开源重置 沙丘2 游戏 · Dune Legacy 中文本地化与渲染技术说明 基于 Irrlicht 和 WASAPI 的 Simple Audio Visualization 技术开发报告 AI Coding越来越强,我们还有必要学Processing吗? · 创意编程 嵌入式脚本语言全解析:从Lua到Wren,游戏与IoT开发的未来选型指南 PixelMentor:一个开源网站 · 调用AI视觉能力分析图片 · 提供影视后期修改意见 基于 Vanilla JS 构建高性能可视化节点创意展示编辑器 (CNE) 的技术实践与深度解析 · Creative Node Editor 关于OpenClaw部署在Ubuntu上的经验小结 P3DE (Processing 3D Editor) 三维场景编辑器 · 软件白皮书 · 基于 v0.4.8 Windows 批量文件操作风险指南 · 不完整小结 [深度复盘] 构建高性能实时弹幕系统:Node.js + Socket.io 架构设计与生产环境部署实战 如何调用CMD实现多个同类文件合并的研究 · 二进制 · 依次 · 文本图像视频音频 Processing (Java) 中实现2D任意图形的鼠标悬停检测 · 2D射线检测 · 模拟按钮 · 点击事件 PowerShell实现全屏七彩渐变 · 呼吸 · 屏保 浅谈processing-java.exe应用程序的使用(与PowerShell的联合) PowerShell开发小工具 · 四张照片拼成一张 CMD批处理脚本+VBScript脚本+Potplayer 实现文件夹内所有视频的截图任务(指定时间点) 批处理脚本(.bat)实现实时监测文件夹并执行命令 [假设有新文件则拷贝到远程文件夹内] PowerShell开发游戏 · 打蜜蜂 Powershell实现圆缩小放大 (实时刷新窗口)
使用Windows任务计划程序实现每天更换一张Processing创意桌面壁纸
SHARP-EYE · 2025-03-03 · via 博客园 - SHARP-EYE

Windows任务计划程序(Windows Task Scheduler)是Windows操作系统中的一项系统工具,它允许用户安排自动执行的任务。通过任务计划程序,用户可以设定特定的时间或条件来运行各种脚本、程序或任务,例如系统维护、数据备份、软件更新等。要实现每天能更换桌面壁纸,使用它是一个很好的选择。

具体想法:每次登陆Windows,可以被任务计划程序触发任务,自动执行更换桌面壁纸的批处理脚本,而该脚本获得指定目录下的由Processing设计并绘制的桌面壁纸,通过修改注册表信息,实现更换桌面壁纸。


首先

编写Processing程序。Processing 是一种灵活的语言,专为电子艺术、新媒体艺术和交互式媒体设计而设计的Java衍生语言。它由Casey Reas和Ben Fry在2001年创建,旨在简化代码编写,以及加快数字媒体艺术创作。Processing基于Java语言开发而来,但提供了更为简洁和直观的语法,使得艺术家、设计师和爱好者能够更容易地学习和使用。它有很多活跃的社团和论坛,大量的源码可供学习参考。我们使用它做一个简单例子------在画布上绘制渐变色,然后在画布中央写上当天的年月日。【作为示例,不必过多设计,此博文核心在于工具间的联合使用】

代码如下:

public void settings() {
  size(3200, 2000);  // 设置画布大小,参考桌面设置
  //fullScreen();
  println(width, height); // 方便调试,将画布大小打印出来
}

public void setup() {
  // 如果想要替换系统默认字体,设置指定字体和文字大小
  //textFont(createFont("Arial", 30));
  
  //文本居中
  textAlign(CENTER, CENTER);

  // 绘制内容
  renderContent();

  // 定义参数   保存的图片文件名,包含日期信息
  String filename = "daily_art_" + year() + "_" + nf(month(), 2) + "_" + nf(day(), 2) + ".png";

  // 保存当前帧
  save(filename);
  
  // 自动退出程序
  exit(); 
  
}

// 可以不写draw循环函数

public void draw() {
  // 禁用循环
  //noLoop();
  // renderContent();
}

private void renderContent() {
  background(255); // 设置初始背景颜色为白色

  // 获取当前日期
  int day = day();
  int month = month();
  int year = year();
  String dateText = "Today is " + month + "/" + day + "/" + year;

  // 根据日期调整渐变颜色
  for (int i = 0; i < height; i++) {
    // 计算颜色值
    float r = map(i, 0, height, day * 1.5f, (day + month) * 2.5f);
    float g = map(i, 0, height, month * 3.0f, (month + year) / 20.0f);
    float b = map(i, 0, height, year % 100, (year * month) / 100.0f);

    // 确保颜色值在 0 到 255 范围内
    r = constrain(r, 0, 255);
    g = constrain(g, 0, 255);
    b = constrain(b, 0, 255);

    // 绘制彩线 试图构成渐变
    stroke(r, g, b);
    line(0, i, width, i);
  }

  // 绘制动态文字
  fill(255, 255, 255);
  noStroke();
  textSize(displayHeight / 30);
  text(dateText, width / 2, height / 2);
}

执行程序,可得如下壁纸:

注意,代码中的 save(filename);。保存的图片会放置在该代码所在文件夹下。还有,因为不需要交互动画,所以,不用编写draw()循环函数,执行完steup()函数后,即可exit()退出。


其次

准备好批处理程序。在windows下脚本执行实现更换桌面壁纸,Dos、VBs、PowerShell都可以,这里使用Dos。

@echo off                  REM 关闭回显,不显示后续命令
setlocal                   REM 开始定义局部变量

REM 获取系统当前日期和时间
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value ^| find "="') do (
  set datetime=%%a         REM 将获取的日期时间值存储在变量datetime中
)

REM 提取日期时间的年、月、日部分
set year=%datetime:~0,4%   REM 年份,取datetime的前4位
set month=%datetime:~4,2%  REM 月份,取datetime的第5和第6位
set day=%datetime:~6,2%    REM 日期,取datetime的第7和第8位

REM 定义日期格式
set mydate=%year%_%month%_%day%

REM 定义图片路径
set "image_path=D:\projects\processing\fxfromdate\daily_art_%mydate%.png"
echo "%image_path%"         REM 打印图片路径

REM 检查图片文件是否存在
if not exist "%image_path%" (
  echo 文件 "%image_path%" 不存在!
  pause                    REM 暂停,等待用户响应
  exit /b 1                REM 非零退出代码表示错误,退出脚本
)

REM 设置壁纸
echo 设置壁纸...
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "%image_path%" /f
if errorlevel 1 (
  echo 注册表修改失败!
  pause                    REM 暂停,等待用户响应
  exit /b 1                REM 非零退出代码表示错误,退出脚本
)

REM 刷新桌面以应用壁纸更改
echo 刷新桌面...
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

echo 壁纸已设置为: "%image_path%" REM 打印已设置的壁纸路径

endlocal                   REM 结束局部变量定义
timeout /t 1 /nobreak > nul REM 等待1秒,防止命令窗口立即关闭

 脚本执行,自动读取图片,然后修改注册表配置,更换壁纸。


最后

打开【任务计划程序】,进行配置。

  • 打开任务计划程序,创建新任务。
  • 常规: 设置任务名称,例如 "每天修改壁纸"。 勾选 "使用最高权限运行"。
  • 触发器: 设置触发器为每天凌晨,例如凌晨 1 点。
  • 操作:
    • 操作 1:
      • 程序/脚本: D:\processing-4.3.2\processing-java.exe 
      • 添加参数 (可选): --sketch=D:\projects\processing\fxfromdate --run 
    • 操作 2:
      • 程序/脚本: D:\projects\processing\fxfromdate\changebg.bat
      • 添加参数:  无

如下图:

这样的话一切准备完毕。


结尾

经过测试,可以顺利实现功能。这次实现,只是做个示例,至于创意壁纸如何“创意法”,就看个人的创造力和Processing功力了。

其实,好好利用Windows自带的任务计划程序,可以做好多有意思的事情。再接再厉吧~