如何用Windows任务计划每天自动更换Processing创意桌面壁纸?
摘要:Windows任务计划程序(Windows Task Scheduler)是Windows操作系统中的一项系统工具,它允许用户安排自动执行的任务。通过任务计划程序,用户可以设定特定的时间或条件来运行各种脚本、程序或任务,例如系统维护、数据备
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);。保存的图片会放置在该代码所在文件夹下。
