C++随机设置壁纸小软件

/*
2018-12-28 15:15:18
例子:通过使用接口 https://api.berryapi.net/bing/random/?200/200
来设置一个更换PC桌面小软件
*/
功能需求:
打开软件 输入所需要的分辨率需求 例如 1920*1080 这种需求
然后点击 设置桌面 就可以得到一张随机桌面

需要完成的点:
1.通过给出的URL进行图片的下载
2.得到下载的图片并设置为桌面

问题1:
通过函数 URLDownloadToFile 可实现对文件的下载
需要使用上述函数 必须加上头文件 #include 以及对应的链接库 urlmon.lib

使用TCHAR相关的函数 则需要带上头文件 tchar.h

问题2:
通过使用函数SystemParametersInfo 来设置桌面背景

 

功能需求大致如上 现在直接进入代码(补充接口:https://api.berryapi.net/bing/random/?200/200 由SOUI大神毛芋儿 提供)

/*
2018-12-28 15:31:17
设置壁纸
技术点1 通过URL下载文件到本地
通过URL下载文件的接口:URLDownloadToFile
函数原型:
HRESULT URLDownloadToFile(
			 LPUNKNOWN            pCaller,		//没有使用Active则设置为NULL
			 LPCTSTR              szURL,		//需要下载文件的URL
			 LPCTSTR              szFileName,	//设置存放的路径
  _Reserved_ DWORD                dwReserved,	//保留 必须设置为0
			 LPBINDSTATUSCALLBACK lpfnCB		//设置为NULL(常规情况下)
);

技术点2 通过得到的壁纸来设置PC的桌面
	通过函数 SystemParametersInfo 既可以设置对应的结果

*/

#include 
using namespace std;
#include 
#include 
#include 

int main()
{
	//获取路径
	TCHAR szCurrentDir[MAX_PATH] = { 0 };
	GetModuleFileName(NULL, szCurrentDir, sizeof(szCurrentDir));
	(_tcsrchr(szCurrentDir, _T('\\')))[1] = 0;
	_tcscat(szCurrentDir, L"backgnd.jpg");
	
	TCHAR url[] = L"https://api.berryapi.net/bing/random/?1920/1080";
	HRESULT FileStatus = URLDownloadToFileW(NULL, url, (LPCTSTR)szCurrentDir, 0, NULL);
	if (S_OK != FileStatus)
	{
		cout << "File Download fail";
		return EXIT_FAILURE;
	}

	//设置桌面背景图片
	SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, szCurrentDir, SPIF_UPDATEINIFILE);
	cout << "设置壁纸成功" << endl;
	system("pause");
	return 0;
}

这里涉及的函数 都是常用的系统调用函数 通过查阅MSDN应该能够清晰理解

这样一款简单实用的更换桌面的小软件就制作完成了(完全可以把这个作为一个小模块进行 代码移植)

效果图:

你可能感兴趣的:(C++)