60 lines
2.0 KiB
HTML
60 lines
2.0 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<link rel="Stylesheet" type="text/css" href=
|
||
"../../default.css" />
|
||
<meta http-equiv="Content-Type" content=
|
||
"text/html; charset=utf-8" />
|
||
|
||
<title>Шаг 1.5: Проверяем срок действия серийного номера</title>
|
||
</head>
|
||
|
||
<body>
|
||
<h1>Шаг 1.5: Проверяем срок действия серийного номера</h1>
|
||
|
||
<p>Поместите в ini-файл строчку вида ExpDate=YYYYMMDD - например,
|
||
такую:</p>
|
||
<pre class="code">ExpDate=20000101
|
||
</pre>
|
||
|
||
<p>Важно, чтобы дата, указанная в строке, уже прошла. Т.е.
|
||
максимум - вчера. Запустив программу, вы увидите следующее:</p>
|
||
<pre class="code">state = SERIAL_STATE_FLAG_DATE_EXPIRED
|
||
please register!
|
||
</pre>
|
||
|
||
<p>Добавим получение дополнительной информации перед выходом с
|
||
сообщением "please register":</p>
|
||
<pre class="code">if (res)
|
||
{
|
||
VMProtectSerialNumberData sd = {0};
|
||
VMProtectGetSerialNumberData(&sd, sizeof(sd));
|
||
printf("exp. date: y = %d, m = %d, d = %d\n", sd.dtExpire.wYear, sd.dtExpire.bMonth, sd.dtExpire.bDay);
|
||
printf("please register!\n");
|
||
return 0;
|
||
}
|
||
</pre>
|
||
|
||
<p>Повторный запуск приложения даст нам больше подробностей:</p>
|
||
<pre class="code">state = SERIAL_STATE_FLAG_DATE_EXPIRED
|
||
exp. date: y = 2000, m = 1, d = 1
|
||
please register!
|
||
</pre>
|
||
|
||
<p>Удалите из ini-файла строку ExpDate=..., чтобы она не мешала
|
||
нам в дальнейшем.</p><br />
|
||
<a href="step16_time.htm">Следующий шаг</a>
|
||
<br />
|
||
<br />
|
||
<br />
|
||
<br />
|
||
<hr noshade="noshade" size="1" />
|
||
|
||
<div align="center">
|
||
© 2006-2015 Copyright VMProtect Software
|
||
</div>
|
||
</body>
|
||
</html>
|