首页 > 编程语言 > 详细

使用C++更换Windows壁纸

时间:2017-03-01 21:20:54      阅读:1203      评论:0      收藏:0      [点我收藏+]

  使用SystemParametersInfoA接口来更换windows的壁纸,虽然挺好用,但是我想写一个显示GIF壁纸的程序,想法是将GIF的每一个帧连续切换显示,奈何该接口设置壁纸的时间太长,达不到快速切换的效果。

  该接口的用法:

#include <windows.h>
#include <iostream>
#include <string>
#include <sstream>
------------------------------------
stringstream imgPath;

imgPath<<"path\\img.jpg";

SystemParameteersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)imgPath.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);

  然后我弄的一个很low的GIF桌面程序:

#include <windows.h>
#include <iostream>
#include <string>
#include <sstream>
#include <thread>
#include <mutex>
#include <ctime>

using namespace std;

void setBackground();

int main() 
{
	thread th(setBackground);
	th.join();
	cin.get();
	return EXIT_SUCCESS;
	
}

void setBackground()
{
	int i = 0;
	stringstream fp0, fp1, fp2, fp3, fp4, fp5, fp6, fp7, fp8, fp9, fp10, fp11, fp12, fp13, fp14, fp15, fp16, fp17, fp18, fp19;
	fp0<< "i:\\t\\frame-01.jpg";
	fp1<< "i:\\t\\frame-02.jpg";
	fp2 << "i:\\t\\frame-03.jpg";
	fp3 << "i:\\t\\frame-04.jpg";
	fp4 << "i:\\t\\frame-05.jpg";
	fp5 << "i:\\t\\frame-06.jpg";
	fp6 << "i:\\t\\frame-07.jpg";
	fp7 << "i:\\t\\frame-08.jpg";
	fp8 << "i:\\t\\frame-09.jpg";
	fp9 << "i:\\t\\frame-10.jpg";
	fp10 << "i:\\t\\frame-11.jpg";
	fp11 << "i:\\t\\frame-12.jpg";
	fp12 << "i:\\t\\frame-13.jpg";
	fp13 << "i:\\t\\frame-14.jpg";
	fp14 << "i:\\t\\frame-15.jpg";
	fp15 << "i:\\t\\frame-16.jpg";
	fp16 << "i:\\t\\frame-17.jpg";
	fp17 << "i:\\t\\frame-18.jpg";
	fp18 << "i:\\t\\frame-19.jpg";
	fp19 << "i:\\t\\frame-20.jpg";
	while (1)
	{
	
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp0.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp1.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp2.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp3.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp4.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp5.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp6.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp7.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp8.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp9.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp10.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp11.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp12.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp13.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp14.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp15.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp16.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp17.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp18.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
		SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)fp19.str().c_str(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);

	

	}
}

 

使用C++更换Windows壁纸

原文:http://www.cnblogs.com/whlook/p/6485967.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!