[问题] qt连网页来检查版本我该怎么做?

楼主: question2 (问问问)   2021-12-06 15:40:54
我用Qt写了一个简单的程式。
其中有一个动作是每次开启程式都会检查有没有新的版本
我简单地让程式去读网页,分析收到的字串来判断是否有新版本
以下是程式码
bool gotoUpdate(){
QNetworkAccessManager manager;
QNetworkReply *reply = manager.get(QNetworkRequest(QUrl(url)));
QEventLoop event_loop;
QObject::connect(reply , SIGNAL(finished()),
&event_loop, SLOT(quit()));
QTimer::singleShot(2000, reply, SLOT(abort()));
event_loop.exec();
QString str{reply->readAll()};
if (str.isEmpty()){
//如果抓最新版本失败了,就当作是最新版本吧
reply->close();
reply->deleteLater();
manager.deleteLater();
return false;
}
//以下略
}
因为我想要统计程式被使用者开启的次数
所以我是实际上是去读用reurl.cc缩过的网址
在我自己的电脑上当然是没问题。
程式没出错
从reurl.cc上也看的到确实每开启一次程式计数器就+1
但是分享给别人之后
却发现下载程式档案的url计次不断的上升
可是开启程式的计次却偶而有上升。
比例相当于10倍。
也就是说10个下载程式的人只有1个人成功开启。
不管分析字串有没有错误,只要有收到从网页那边传来的字串
reurl的计数器都会++
而从上面的程式码可以看到,如果字串是空的,或是2秒的时间到了而被中断
程式都还是会继续执行。
所以我在想...会不会我发出去的程式其实是可以跑起来的
但是可能使用者的防毒软件、防火墙、OS版本或是我的dll版本不适用而导致网络功能被截
停?
但我暂时不知道怎么确认....
因为一来我不知道谁有下载我的程式,
二来没什么人回应我到底程式是成功还是失败
失败可能就当场删掉了也不会特地写信回应我QQ....
想请问要怎么做才可以确保程式成功执行
或是至少能够知道使用者有没有成功执行?
我检查版本的方式或是连网页的程式码有错误吗?
感谢阅读

Links booklink

Contact Us: admin [ a t ] ucptt.com