Задать вопрос
@antandar

Каким образом можно определить, был ли компьютер перезагружен?

Имеется некая триал-программа, работающая ограниченный отрезок времени, после чего закрывается. Последующий запуск этой программы возможен только после перезагрузки компьютера.
Вопрос: каким образом программа может определить, был ли компьютер перезагружен? Может быть, есть подобные api-функции? Пробовал гуглить, ничего не нашел по этому вопросу.
  • Вопрос задан
  • 256 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 7
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
https://msdn.microsoft.com/en-us/library/ms713418(...
timeGetTime() — воз­вра­ща­ет вре­мя в мил­ли­се­кун­дах с мо­мен­та стар­та опе­ра­ци­он­ной си­сте­мы
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
Так не будет работать. Запустили программу в час аптайма, потом ребутнулись, запустили её через 2 часа аптайма. А она не запускается, так как время больше.

.
Да, действительно... (((
Запоминайте разницу между стартами. Если она меньше времени работы системы — перегрузки не было.
Ответ написан
Комментировать
@ashumkin
системный разработчик
программа работает в течение периода после СВОЕГО запуска или запуска системы? )))
можно ли её перезапуститить в течение этого периода?
от ответов на эти вопросы зависит предположение как именно устроена защита )
возможно она создаёт просто мьютекс в памяти, и не удаляет его, при перезапуске же все мьютексы, понятное дело стираются, и т.п.
Ответ написан
в консоли cmd введи
systeminfo
Ответ написан
Комментировать
В дополнение к ответу iBird Rose могу предложить поискать в EventLog-е самое крайнее сообщение с кодом "рестарт системы", но это всё равно менее эффективно, чем предложенное выше.
Ответ написан
Комментировать
@antandar Автор вопроса
Спасибо!
То есть программа может при каждом старте считывать timeGetTime(), где-то его сохранять, и при последующем старте сравнивать с сохраненным, и если оно больше сохраненного, то отказываться запускаться, я правильно мыслю?
Ответ написан
Программа сохраняет не сколько комп включен, а *когда* включен.
При перезагрузке, программа смотрит, что комп всетаки перезагрузили и запускается, если время совпало значит не перезапускали.

А вообще мой совет - сделай снапшот реестра и файловой системы (утилит много подобных). запусти программу, поработай пока триал не истекет. смотри что она сохранила, пробуй удалить/изменить и запускать программку пока она не запустится (подумав что перезагрузили комп.)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы