C++壁紙のランダム設定ソフト

1961 ワード

/*2018-12-28 15:15:18例:インタフェースの使用https://api.berryapi.net/bing/random/?200/200PCデスクトップを交換するための小さなソフトウェア*/機能要件を設定します.ソフトウェア入力を開くには1920*1080などの解像度要件が必要です.デスクトップの設定をクリックすると、ランダムなデスクトップが得られます.
完了するポイント:1.与えられたURLで画像のダウンロードを行う.ダウンロードした画像を入手してデスクトップに設定
質問1:関数URLDownloadToFileにより、ファイルのダウンロードを実現するには、上記の関数を使用してヘッダファイル#includeと対応するリンクライブラリurlmonを追加する必要がある.lib
TCHAR関連の関数を使用するには、ヘッダファイルtcharを持参する必要がある.h
質問2:関数SystemParametersInfoを使用してデスクトップの背景を設定
 
機能要件は、ほぼ上記のようにコード(補足インタフェース:https://api.berryapi.net/bing/random/?200/200SOUI大神毛芋より提供)
/*
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を調べることで明確に理解できるはずである
このような簡単で実用的なデスクトップ交換ソフトの作成が完了しました(これを小さなモジュールとしてコード移植することができます)
効果図: