Qt做的一个Bing(微软必应)壁纸工具

微软Bing壁纸是我非常喜欢的壁纸,怎么说呢它的壁纸非常细腻逼真,总是让人心动,我就不安利了,反正比三百六X鸟好多了。不幸的是Win10更新到最新版以后微软bing缤纷桌面不能运行了,失望加无奈。。  难道我就这么的放弃我的壁纸了么,不,党告诉我,你可以靠自己,你可以创新,然后就自己动手做了一款工具来自动下载Bing壁纸工具。 纯。。。纯到没有界面,纯到没有任何提示,纯到24小时自动更换壁纸,纯。

整体而言,就是用json network slots ,就简单贴下主要代码部分,附件有构建好的应用,win10通过。。。

//bing.cpp
#include "bing.h"
#pragma comment(lib, "user32.lib")

Bing::Bing()
{
    connect(&manager,&QNetworkAccessManager::finished,this,&Bing::downloadFinished);

}

void Bing::execute()
{
    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(execute()));
    timer->setInterval(86400000);
    timer->start();

    QUrl url("https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US");

    QNetworkRequest request(url);
    QNetworkReply *reply = manager.get(request);
    currentReplys.append(reply);
    qDebug() <<  "execute ";
}
void Bing::doGetJson(QNetworkReply *reply)
{

    QByteArray byteArray = reply->readAll();

    QJsonParseError jsonError;
    QJsonDocument json = QJsonDocument::fromJson(byteArray,&jsonError);

    if (!json.isNull() && (jsonError.error == QJsonParseError::NoError))
    {

        if(json.isObject())
        {

            QJsonObject obj =json.object();
            if(obj.contains("images"))
            {

                QJsonValue value = obj.value("images");
                if(value.isArray())
                {

                    QJsonArray jsonArray = value.toArray();
                    QJsonValue imageValue = jsonArray.at(0);
                    if(imageValue.isObject())
                    {
                        QString image = imageValue["url"].toString();
                        QString baseUrl = "https://www.bing.com";
                        baseUrl.append(image);
                        QUrl url(baseUrl);
                        QNetworkRequest request(url);
                        QNetworkReply *replyImage = manager.get(request);
                        currentReplys.append(replyImage);
                    }
                }
            }
        }
    }

}

void Bing::downloadFinished(QNetworkReply *reply)
{

    if(reply->url() == QUrl("https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US"))
    {
        doGetJson(reply);
    }
    else
    {
        saveImages(reply);
    }

    currentReplys.removeAll(reply);
    reply->deleteLater();
}

void Bing::saveImages(QNetworkReply *reply)
{

    QDate date = QDate::currentDate();

    QString fileName = "d:\\bingWallPaper\\bing";
    fileName.append(date.toString("yyyyMMdd")).append(".jpg");
    QFile file(fileName);

    if(!file.open(QIODevice::WriteOnly))
    {
        qDebug() << "open failed";
        return;
    }
    file.write(reply->readAll());
    file.close();
    setWallPaper();
}
void Bing::setWallPaper()
{
    //const wchar_t *wimFile =reinterpret_cast<const wchar_t *>(pszWimFile.utf16());
    QDate date = QDate::currentDate();
    QString fileName = "d:\\bingWallPaper\\bing";
    fileName.append(date.toString("yyyyMMdd")).append(".jpg");
    const wchar_t *image =reinterpret_cast<const wchar_t *>(fileName.utf16());
    if( !SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void*)image, SPIF_UPDATEINIFILE) )//调用windows的API函

        return;

}

源代码:https://github.com/piaodonkey/BingWallPaper  我真是越来越懒了。。

附件:链接:https://pan.baidu.com/s/1XiL4HhluEbPzEcIVo8xhmA 密码:dck1

原文地址:http://blog.51cto.com/amgodchan/2113334

时间: 2024-10-28 21:10:26

Qt做的一个Bing(微软必应)壁纸工具的相关文章

使用Windows Api+Qt做的一个系统备份工具

由于公司应用大量装机的情况,以前使用ghost软件来处理,但是自从uefi模式出现后ghost已经不能很好的应用了,虽然现在有Acronis软件替代,但是生成的备份文件没有很好的工具去修改,所以遇到需要添加镜像驱动和补丁的时候带来非常大的麻烦.系统自带的dism工具确实好用,但是每次都需要输入命令行输入,效率不能提高.因此根据现在的实际情况,清明三天假连学带做了这款窗口版的备份还原工具,功能目前很很简单,只有备份分区(文件夹)和还原分区功能,下一步会添加驱动添加功能.废话不说,上代码.  //D

个人博客作业Week2(微软必应词典客户端的案例分析)

提要:我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信微博,等等都是软件,都很值得分析. 你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么? 通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现. 产品:必应词典客户端 (http://bing.msn.cn/dict/) 关于 微软必应词典客户端 的案例分析 (桌面版 version 3.5.0) 第一部分 调研,评测 调研 1)采访对

软件工程第三周作业:微软必应词典案例分析

0x01 :微软必应词典案例分析 0x0104 :微软必应词典功能性BUG说明       0x010404 : BUG – 1 – 模块功能未实现 运行环境或平台 iOS 9.0.1 必应词典软件版本 版本3.5,版权所有@2014 Microsoft 软件测试BUG特征 [优先级1]应用程序模块功能未实现,包含整个模块不能正常运行 重现步骤 1. 打开必应词典软件进入设置中,选择跨软件查词设置,设置为打开和一直运行 2. 按照使用说明所说随意打开某一App(这里选择提醒事项) 3. 按使用说

必应好壁纸 官方主页(必应壁纸)

必应好壁纸3.1(2017-1-3)将为你的桌面注入新的活力,它每天都会为你更新来自微软必应搜索的高品质壁纸! 每天盯着相同的桌面壁纸总让人感到疲倦和乏味,何不让桌面壁纸自动更换呢?每一张令人心旷神怡的壁纸后面都有一个真实的故事让你心动,让必应壁纸带你环球旅行吧,换一张壁纸,换一种心情! 下载:官方下载 百度网盘 (360会将本软件误判为病毒,性命担保绝对无毒~~) 使用:视频演示 鼠标左击本软件的系统托盘图标(QQ图标的旁边)可以更换壁纸,右击显示功能菜单,此外本软件也会在指定的时间间隔自动更

微软必应词典案例分析

1.微软必应词典案例分析 1.1微软必应词典功能性BUG说明 声明:以下版本和运行环境如下: 运行环境:Android 5.0.2 LRX22G MIUI 8.0.1.0(LHMCNDG) 必应词典软件版本:5.2.2 1.1.1:BUG-1-悬浮窗错误弹出 软件测试BUG特征 与其他软件存在使用冲突 重现步骤 0.安装讯飞输入法1.打开必应词典->我的->设置->勾选悬浮窗口->打开微信->在对话框中输入讯飞输入法自带的emoji表情,例如破涕为笑 测试结果 弹出“本地暂无

微软必应小冰真心不错,我给100个赞

放假闲的无聊,手机微信加了微软小冰--这个号称"史上最强聊天机器人".据说"小冰"是"基于 Bing 云技术研发的新一代人工智能产品",我开始感觉就是用点搜索技术加上关键词字典匹配算法,跟以往接触过一些自动应答机器人差不多.不过,今天我又跟她聊了一会儿,感觉还挺有意思,特别是最后,我还对这个小姑娘有了深深的敬意......    首先,我问的是在网上看到过的问题--"三星和诺基亚哪个好",这里她的回答并不是固定不变的,可能回答

个人作业-week2:关于微软必应词典的案例分析

第一部分 调研,评测 评测基于微软必应词典Android5.2.2客户端,手机型号为MI NOTE LTE,Android版本为6.0.1. 软件bug:关于这方面,其实有一些疑问.因为相对于市面上其他的词典应用,这个软件的bug实在是是是太多了.(甚至怀疑这个软件不更新是专门作为软工作业的...) 下面就一一列举: 拍照取词功能.这个功能我试过扫描电子图片上很大的英文单词和纸质试卷上的单词,都无法使用.前者是提示翻译错误(有一次报了java的错误),后者的结果是“没有识别到文字”.我也试了有道

Python 爬取必应壁纸

import re import os import requests from time import sleep headers = { "User-Agent": ("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) " "Gecko/20100101 Firefox/64.0") } def get_index(resolution, index=1): url = f"htt

个人作业—Week2:微软必应词典案例分析

调研.评测 bug报告: 标题:Window 10版必应词典客户端口语练习功能无法使用 环境:Window 10, 微软必应词典(UWP) 版本2.6.1.0,屏幕无重力感应模块 重现步骤: 1)     打开微软必应词典 2)     点击左侧菜单栏中的口语练习 结果:产生名为“微软小英-微软必应词典”的新窗口,窗口中显示:“为了更好的体验,请使用竖屏”.无法在保持横屏状态使用该功能. 预期结果: 1)     窗口提示:横屏状态下无法使用该功能,PC无法使用该功能 2)     允许用户跳过