Каждый раз, когда ваше приложение запускается или выходит, сохраните текущую дату и время. Если в следующий раз системная дата является более ранним значением, вы знаете, что время было подделано.
У вас не может быть идеального решения, только если у вас есть доступ в Интернет. Если вы это сделаете, то есть миллион способов проверить время или даже перезвонить на сервер, чтобы проверить, действительна ли пробная лицензия.
Одним из способов проверки времени в Интернете является простой запрос к HTTP-серверу. Например, в Google (вы должны использовать свой собственный сервер для этого).
Запрос:
HEAD / HTTP/1.1
Host: google.com
Ответ:
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Wed, 09 Mar 2011 16:04:48 GMT
Expires: Fri, 08 Apr 2011 16:04:48 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
Как видно, все HTTP-серверы сообщают о текущей системной дате в заголовке Date
.
Но опять же, это не имеет значения вообще. Если для работы вашего программного обеспечения необходимо подключение к Интернету, вы можете воспользоваться онлайн-проверкой лицензии на своем собственном сервере. Если нет, то пользователи могут отключить свое соединение нажатием кнопки во время его использования.