现在的位置: 首页 > 综合 > 正文

XP动态更改桌面背景图片

2011年02月05日 ⁄ 综合 ⁄ 共 1370字 ⁄ 字号 评论关闭

一、缘由:

  很久之前就发现win7的那个自动更改桌面背景图片的功能很好,选一些自己喜欢的图片,然后系统自动的更换。可惜XP下面没有此功能,于是有了下面这些。

二、思路:

  第一步,选好自己的图片组(这里采取的是把自己喜欢的图片全部放在一个目录下),程序运行时指定此目录即可;

  第二步,设置更改图片时的参数,如更改的间隔时间,显示图片的方式(有居中、平铺、拉伸三种)。若你喜欢,你也可以设置其他你想到的;

  第三步,当程序运行之后不能妨碍其他正常工作,所以呢,程序运行之后应该隐藏起来,或者至少托盘。这里导致另外一个问题,当隐藏或者托盘之后应该设置一个全局快捷键,这样子方便我们调出程序(也可以隐藏程序);

第四步,程序应该设置为开机启动。

三、图解:

 

 

 

 

 

 

 

 

 

 

 

 

四、主程序及部分代码:

            程序界面

代码:

1、 选取图片所在目录,用“文件目录”— SHBrowseForFolder和BROWSEINFO结构体,参考地址:

http://www.cppblog.com/wrhwww/archive/2009/03/14/76552.html

这里有个问题,将目录只能设置为最小子目录(如果不是最小子目录则不能选择)没有解决,希望有方法的朋友可以共享一下。:)

2、 读取所选目录下面的文件,并且需要将所读取的文件名保存到数据或者链表:

http://www.cnblogs.com/yjm0105/archive/2005/06/22/179353.html

不过这里需要注意,参考资料里面的方法是将该目录下所以的文件,包括系统隐藏文件,所以在读取的过程过滤某些不需要的文件。这里我的办法是过滤文件名的类型,用strstr()函数,比较文件后中“.”后的字符串。

3、 更改桌面背景:

http://hi.baidu.com/vcwalker/blog/item/9dadf79d12fee5056f068cff.html

这里我用了随机数,不过要注意随机函数的使用(随即种子一定要放在循环体外面):

http://hi.baidu.com/%C8%ED%BC%FE%B8%D6%C7%D9%CA%A6/blog/item/5ab7f5f5b8d68b2dbc3109ab.html

4、 定时更改,当然需要定时器,注意程序结束的时候调用KillTimer()函数销毁定时器。

5、 托盘显示和全局快捷键:

http://blog.csdn.net/akof1314/archive/2010/01/02/5121911.aspx

这里没有实现程序隐藏,只是托盘了。全局快捷键也没有实现,希望哪位朋友找到了,共享一下方法。

6、 其他问题:

  l  字符UTF-8、ANSI、Unicode之间的转换:

  http://www.cnblogs.com/gakusei/articles/1585211.html

  和http://www.cnblogs.com/nanshouyong326/archive/2009/08/14/1546090.html

  l Ini文件的操作自己去查。 :)

  代码我放在这里,要是有什么不对,希望大家指出。http://u.115.com/file/f8b738ee86 。如果到期了给我留言我去续期。

 

 

抱歉!评论已关闭.