2016-02-17 3 views
0

Я сделал обновление, которое проверяет последнее обновление на сервере, и если установленная версия меньше версии, доступной на сервере, тогда она загружает последнее обновление exe с сервера с помощью «NSISdl» и заменяет его более новой версией. Все это происходит, если доступно интернет-соединение. Я реализовал этот механизм при запуске приложения. Когда приложение запускается, оно сначала проверяет подключение к Интернету с помощью «Dialer :: GetConnectedState», и если соединение есть, оно попадает на сервер и сравнивает версию. Теперь моя проблема заключается в том, что каждый раз, когда я запускаю свое приложение и когда интернет включен, мое приложение попадает на сервер каждый раз, даже когда у меня последнее обновление. Может ли кто-нибудь сказать мне, как сделать мой обновитель доступным сервером только один раз в день, чтобы каждый раз, когда я запускаю свой сервер, он попадает на сервер только один раз, а до конца дня он не должен ударять по серверу. Не могли бы вы рассказать мне, как я могу это достичь?Как сделать программу обновления с помощью NSIS, которая будет проверять наличие последнего обновления только ONCe за один день?

ответ

0

Каждый раз, когда вы проверяете наличие обновлений, вы можете сохранить/обновить ключ реестра, содержащий текущую дату. Кроме того, когда ваша программа запускается перед проверкой обновлений, вы должны прочитать этот ключ и сравнить его с текущим временем, чтобы вы проверяли только обновления, если текущая дата более новая, чем сохраненная.

Вы можете получить текущую дату с помощью $ {GetTime}. См. Этот ответ по аналогичному вопросу:

writing current date & time as file name using NSIS