Уроки по Delphi



         

Урок23. Защита программы от бесплатного использования. Испытательный срок. - часть 5


Если таких переводов времени слишком много (работает автоматический перевод времени), то срок использования программы закончится уже после 30 запусков.

Если после очередного запуска вы насчитали (ТЕКУЩАЯ_ДАТА - ДАТА_ПРЕДЫДУЩЕГО_ЗАПУСКА + КОЛИЧЕСТВО_ДНЕЙ_РАБОТЫ_ПРОГРАММЫ)>=30, тогда вы знаете что делать :). Можно просто завершать работу, а можно поступить так, как сказано в следующем пункте.

3. По истечению бесплатного использования программы она делает специальную пометку в реестре и полностью удаляется. Если пользователь оставил заначку в виде резервной копии программы, то она тоже сама удалится, как только прочитает эту пометку при запуске. Хотя я и предлагаю вашему вниманию этот метод, все же не советую его использовать т.к. он наиболее конфликтный. 100% гарантии у вас нет, что эта процедура не сработает на уже купленной версии, и вы можете тем самым потерять ценного клиента. Но, тем не менее, вот идея. Перед уничтожением всех данных программы, а обычно они располагаются в каталоге вашей программы, необходимо закрыть все открытые файлы. Далее все файлы по очереди уничтожаются командой:

DeleteFile(НАЗВАНИЕ_ФАЙЛА);

При этом их восстановление возможно специальной утилитой, например UnErase. Сложнее будет восстановить физически затертый файл. Для этого вам надо такой файл создать заново процедурой Rewrite и закрыть. Далее файл нулевого размера можно удалить. Восстановление таких данных без специальных средств дисковых редакторов невозможно. Стандартными средствами восстанавливаются только перезаписанные нами нулевые файлы. Пользователь при этом только напрасно потеряет время. Можно сказать уверенно, что все данные из такого удаленного файла навсегда утеряны.

Если вы еще не находитесь в шоке или азарте от такого откровения, то я вам расскажу про то, как удалить вашу запущенную программу.

Ваша программа уже очистила все свои рабочие файлы и готова сама удалиться. Но если вы попытаетесь ее удалить, то ничего не выйдет. Программа запущена и пока она работает, ее и с места двинуть нельзя. Удалить ее только после закрытия может внешний процесс. Для этого вы программно создаете BAT файл, в котором пишите:




Содержание  Назад  Вперед