[問題] qt連網頁來檢查版本我該怎麼做?

看板Programming作者 (問問問)時間2年前 (2021/12/06 15:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
我用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.... 想請問要怎麼做才可以確保程式成功執行 或是至少能夠知道使用者有沒有成功執行? 我檢查版本的方式或是連網頁的程式碼有錯誤嗎? 感謝閱讀 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.225.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1638776457.A.CC1.html
文章代碼(AID): #1XhRw9p1 (Programming)