使用批处理文件设置Wallpaper目录

时间:2013-04-04 05:24:26

标签: windows command-line batch-file desktop-application wallpaper

我正在开发一个从服务器下载桌面壁纸的简单应用程序,并将图像保存在Wallpaper Downloads中。我想将此目录设置为我的Wallpaper目录,如Control Panel\Appearance and Personalization\Personalization\Desktop Background中所示。我的意思是我希望将此文件夹中的每个图像设置为我的壁纸一段特定时间,就像personalization中所做的那样。我看过将一个图像设置为壁纸但整个文件夹没有设置的代码,是不可能的? 就像在Windows Personalization中一样,我们可以浏览壁纸文件夹,然后将其中的所有图像设置为我们的壁纸,它会在指定的时间内发生变化。

2 个答案:

答案 0 :(得分:2)

HKEY_CURRENT_USER\Control Panel\Desktop\WallPaper 存储当前的壁纸位置。

最简单的方法是设置该注册表值以查找“wallpaper.jpg”,然后以数字方式命名目标文件夹中的所有图像。使用一个简单的循环批处理文件,将一个数字读入批处理文件,添加一个,除非它是您拥有的最后一个图像的编号,然后将该编号写回文本文件。然后将该编号的文件名更改为“wallpaper.jpg”。然后使用任务计划程序使批处理文件间隔运行。我的计算机上有一个可以在每次登录时更改壁纸登录。

这是一个示例批处理脚本。

@echo off
cd C:\Users\kenneth\wallpapers\logon
set n=
set /p n=<numb.txt
move .\background.jpg .\%n%.jpg
if %n% == 30 set n=0
set /a n=%n%+1
move .\%n%.jpg .\background.jpg
ECHO %n%>numb.txt

在这个例子中,我有30个编号为1-30的jpg图像。您必须将第六行中的值调整为您拥有的文件数。

答案 1 :(得分:0)

iCodeSometimes的代码段略有改进(@admins:pwese转到注释): 除了保持文件夹中图片的最大数量外,您还可以检查文件是否确实存在,如果不存在,请重置计数器。 像

if not exist "%n%.*" set n=0