源码
#include<iostream>
#include<thread>
#include<chrono>
#include<direct.h>
#include<map>
#include<Windows.h>
#pragma comment(lib, "user32.lib")
using namespace std;
int main() {
// constants
char cwd[0xff];
getcwd(cwd, 0xff);
const pair<unsigned short, char> hourMap[] {
{20, '2'}, {19, '8'},
{18, '1'}, {16, '7'},
{13, '6'}, {10, '5'},
{8 , '4'}, {5 , '3'},
{0 , '2'}
};
// variables
SYSTEMTIME time;
unsigned short hour{0};
char cImgId{'2'};
char cLastImgId{'0'};
// main
thread t([&]() {while(true) {
// 计算现在小时数对应的图片
GetLocalTime(&time);
hour = time.wHour;
for(const auto& kv: hourMap){ if(hour>=kv.first) {
cImgId = kv.second;
break;
}}
// 如果图片序号变化就改变壁纸
if(cImgId!=cLastImgId) {
string str = string(cwd) + "\\res\\Catalina_" + cImgId + ".jpg";
SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, (PVOID)str.c_str(), SPIF_SENDCHANGE);
cLastImgId = cImgId;
}
// 刷新频率
this_thread::sleep_for(chrono::minutes(10));
}});
t.join();
return 0;
}
壁纸结构
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于