A
A
antandar2016-10-19 20:19:04
Programming
antandar, 2016-10-19 20:19:04

How can you tell if a computer has been restarted?

There is a certain trial program that works for a limited period of time, after which it closes. Subsequent launch of this program is possible only after restarting the computer.
Question: how can the program determine if the computer has been restarted? Maybe there are similar api functions? Tried to google, found nothing on this issue.

Answer the question

In order to leave comments, you need to log in

7 answer(s)
I
iBird Rose, 2016-10-19
@iiiBird

https://msdn.microsoft.com/en-us/library/ms713418(...
timeGetTime() — воз­вра­ща­ет вре­мя в мил­ли­се­кун­дах с мо­мен­та стар­та опе­ра­ци­он­ной си­сте­мы

Константин Цветков, 2016-10-20
@tsklab

Так не будет работать. Запустили программу в час аптайма, потом ребутнулись, запустили её через 2 часа аптайма. А она не запускается, так как время больше.

.
Да, действительно... (((
Запоминайте разницу между стартами. Если она меньше времени работы системы — перегрузки не было.

Алексей Шумкин, 2016-10-20
@ashumkin

программа работает в течение периода после СВОЕГО запуска или запуска системы? )))
можно ли её перезапуститить в течение этого периода?
от ответов на эти вопросы зависит предположение как именно устроена защита )
возможно она создаёт просто мьютекс в памяти, и не удаляет его, при перезапуске же все мьютексы, понятное дело стираются, и т.п.

P
Pan Propan, 2016-10-19
@mgis

в консоли cmd введи
systeminfo

Андрей, 2016-10-19
@OLS

В дополнение к ответу iBird Rose могу предложить поискать в EventLog-е самое крайнее сообщение с кодом "рестарт системы", но это всё равно менее эффективно, чем предложенное выше.

A
antandar, 2016-10-19
@antandar Автор вопроса

Спасибо!
То есть программа может при каждом старте считывать timeGetTime(), где-то его сохранять, и при последующем старте сравнивать с сохраненным, и если оно больше сохраненного, то отказываться запускаться, я правильно мыслю?

Никита Журавлёв, 2016-10-21
@LLIKIPER

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

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question