无聊中,自动换壁纸

2011-06-19 08:28:27

这些天为了买个电视,在电脑前的时间多了,
原来在我每个电脑上桌面都是一样的,壁纸,图标位置都一模一样.
突然觉得对不起硬盘里收集的那么多美丽风景.
网上搜了一下,XP竟然需要装软件才能实现自动换,
哼哼,我只要每次开机不同就行了,
自己想办法.

设置壁纸时,不管选的什么格式文件,都被转换为BMP放在”C:\Documents\UserName\Local Settings\Application Data\Microsoft\Wallpaper1.bmp”,
然后在”C:\Documents\UsaeName\Application Data\Microsoft\Internet Explorer\Desktop.htt”中指定.
htt文件其实是特殊的html,壁纸是做为网页背景载入,在”BODY background=”这里,直接改background就可以改变壁纸,
但要重启或注销之后才能看到变化.

我现在用2个电脑,大的Lenovo在家里,随身带着刚刚淘到手的AigoP8880.
奇怪的是,在Lenovo上可以直接用jpg的壁纸,P8880却不行,一定要用转好的BMP.
两个系统各自精简方向不同,去找细微的差异也不现实.

换壁纸的思路是指定一个壁纸文件名,
然后把准备好的图片随机复制一个过来覆盖,
这样,下次开机就载入新的壁纸了.

随机复制文件就容易多了,把同样格式的图片放在一个文件夹里,以00-99命名,因为用取系统时间的尾数,所以最多100张图.
再多图就要复杂点的计算方法了.

:ChangeWallPaper.cmd文件内容
:如果图不到100张,而取到的时间值可能大于图片数,这样取不到图,所以要重新取.
:begin
for /f “tokens=1,2 delims=.” %%a in (‘echo %time%’) do set f=%%b
if %f% gtr 87 goto begin
:文件复制
:在Lenovo,可以用JPG壁纸,所以那个htt文件里直接指定壁纸文件名BODY background=”F:\photo\wallpaper.jpg”
copy /y/b “F:\photo\%f%.jpg” “F:\photo\wallpaper.jpg”
:P8880用BMP壁纸,所以要用这句
copy /y/b “F:\photo\%f%.bmp” “C:\Documents\UserName\Local Settings\Application Data\Microsoft\Wallpaper1.bmp”

然后又觉得文件多了有点不爽,打个包,随机解压一张出去.
这次用的7Z的命令行,只有一个文件.
所有图片都改统一名,放在00-99编号的目录下,然后打包成ZIP.
用一句CMD就转换了.

for /f “tokens=1,2 delims=.” %a in (‘dir *.jpg /b’) do md %a&&move %a.jpg %a\Wallpaper.jpg
或者
for /f “tokens=1,2 delims=.” %a in (‘dir *.bmp /b’) do md %a&&move %a.jpg %a\Wallpaper1.bmp

原来的:
00.jpg
01.jpg
02.jpg
就变成了
00\Wallpaper.jpg
01\Wallpaper.jpg
02\Wallpaper.jpg

7Z是个强大的压缩解压工具,其中的7z.exe命令行版本执行时不需要别的文件.
然后新的的换壁纸CMD如下.

:ChangeWallPaper.cmd文件内容
:begin
for /f “tokens=1,2 delims=.” %%a in (‘echo %time%’) do set f=%%b
if %f% gtr 87 goto begin
:Lenovo用的
“D:\Program Files\tools\7-Zip\7z.exe” e “F:\Photo\jpg.zip” -aoa -o”F:\Photo\” %f%\Wallpaper.jpg
:P8880用的
“D:\Program Files\tools\7-Zip\7z.exe” e “F:\Photo\bmp.zip” -aoa -o”C:\Documents\Administrator\Local Settings\Application Data\Microsoft” %f%\Wallpaper1.bmp

如果刚好100张图,用00-99命名,就不用:begin到goto begin那几行,
不够100的,if %f% gtr 87 goto begin这里用最后一个文件的数字编号.

这个程序可以用计划任务放在关机时执行,也可以放启动组,
反正效果都是下次开机见了.

Permalink : http://13jl.com/1167165.html

1 Comment so far

  • 小 妞儿 (2011-06-20 11:47:42)

    (通过 Web 发布)
    有效果了木有
    今天中午吃大骨汤
    Re:
    当然有效果
    我到现在还没吃过饭呢,现在是15:51,都快晚上了

Post A Comment:

(*)

(*)

By submitting a comment here you grant 地狱十九重 a perpetual license to reproduce your words and name/web site in attribution. Inappropriate comments will be removed at admin\'s discretion.