Вы делаете это не так, как хотите.Это не сработает.
Вы проверяете с помощью авторитетного интернет-сервера времени или чего-то подобного (или вы устанавливаете сервер с веб-службой, которая возвращает текущее время).Если вы не знаете, как это сделать, просто отметьте http://tycho.usno.navy.mil/cgi-bin/timer.pl
Я добавлю, что вы можете прочитать здесь Предотвратить обход защиты от копирования на основе времени? если вы нене верь мне.
Я расскажу другую стратегию.Я не уверен, что это может сработать.У него много проблем (он работает на моей машине, но я нигде не тестировал).Это медленно (вы должны запустить его в своем потоке и, если есть ошибка, вызвать выход из программы).Я не знаю, совместимо ли это.Я не знаю, могут ли пользователи низкого уровня запустить его.Он просматривает список обновлений для Windows и принимает самую последнюю дату.Если пользователь никогда не обновляет свои окна, он его обманет.
Добавить ссылку на C:\Windows\System32\wuapi.dll
.Он сгенерирует dll "interop" и добавит ссылку на него.
using WUApiLib;
UpdateSession uSession = new UpdateSession();
IUpdateSearcher uSearcher = uSession.CreateUpdateSearcher();
uSearcher.Online = false;
try
{
ISearchResult sResult = uSearcher.Search("IsInstalled=1 OR IsInstalled=0");
// This one!!!!
var maxTime = sResult.Updates.OfType<IUpdate>().Max(p => p.LastDeploymentChangeTime);
}
catch (Exception ex)
{
Console.WriteLine("Something went wrong: " + ex.Message);
}
О ... Я предполагал, что вы используете C # :-) Если вы используете C ++, вы можете конвертировать код.В следующий раз вы научитесь ставить тег языка.