需求:1、设置桌面壁纸(静态和动态)2、设置系统美化(蜂窝收纳盒样式)3、系统开始菜单,增加透明美化等特效4、软件获取在线免费壁纸5、写一个易更改的接口模块来更改获取图片的途径(因为我打算使用爬虫爬取网上的免费壁纸库,python的爬虫略知一二,C++应该也差不多吧)
今天先把换壁纸的代码实现一下,先把基础代码实现一下。
我去,百度一下C++实现换壁纸的代码才知道,原来不只有QT可以构建GUI,MFC也可以,看来自己的知识还是少的可怜啊。
在网上很快找到了更改壁纸的代码,测试一下可以使用。
不过试了几次,发现和桌面分辨率不匹配的图片用起来很糊,看来还得增加获取电脑桌面分辨率的代码,对于图片没有必要加以处理,因为可以根据导航栏的代码直接进入相应链接进行爬取(python这方面的代码很多,python是基于C的,所以C++应该也没问题),大小不匹配的图片就不要了,毕竟自己修的不但让程序变得笨重,而且有可能也不好看,专业的事让专业的人去干吧。
百度了一下,稍加修改,代码如下。
#include
#include
int main()
{
const char* path = “D:desktop.jpeg”;
SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)path, SPIF_SENDCHANGE);
HDC hdc = GetDC(NULL);
int width = GetDeviceCaps(hdc, DESKTOPHORZRES);
int height = GetDeviceCaps(hdc, DESKTOPVERTRES);
ReleaseDC(NULL, hdc);
std::cout << “width:” << width << std::endl;
std::cout << “height:” << height << std::endl;
return 0;
}
这样就可以实现换壁纸和获取桌面的分辨率的功能了,可以为下一步爬取壁纸做准备。
本来不想增加图片处理的功能的,看了一下网上有一些关于opencv的容易获取的资料,那么进行简单的图片处理应该也不难,就不特地去买书了。
动态壁纸比较麻烦,第一个软件就不考虑它了,其实稍微深入低层一点应该也不难。
其实壁纸软件最难的不是实现,而是图片库的获取和网站开发(如果要进行盈利的话就好设置账号密码还需要数据库),不过我的目标就是简单,免费,那么只需要存储一定数量的图片附带在程序中,这样即使以后目标网站禁止图片获取我们也能有一定数量图片可以用来美化桌面,代码也不至于全部失效(类似javascript的渐近退化)。



