СообЧа > База Знаний > Программирование > Delphi

Вопрос

Версия языка: 6

Мне нужна такая помощь. Хочу, чтобы программа, искала на всех возможных логических дисках свою копию и если находила, то удаляла бы их и удалялась сама. Например, по истечению некоторого ограничения программа искала свои копии и удалялась вместе с ними. P.S. Кстати, об ограничениях. Как лучше организовать демо-версию программы? Куда лучше записывать счетчик-ограничитель и в каком виде? Желательно, чтобы при обнаружении некого скрытого ключа (в реестре, в файле) программа бы удалялась. Надеюсь я Вас не запутал…:)

P.P.S. И еще про ограничения. Можно ли как-нибудь в программе, например после того как счетчик покажет определенное значение удалилось строковое значение, но так, чтобы удалилось из кода программы и больше в ней не появлялось…

Ответ

1. Бегаешь по дискам (GetLogicalDrives) по всем каталогам (FindFirstFile, FindNextFile, FindClose) и ищешь файл <имя_твоего_exeшника.exe>. Если находишь, проверяешь, твой ли это, и т.д.

2. Лучше компилировать демоверсию отдельно от полной, то есть физически не включать некоторые функции (например, сохранения документа), а вместо них писать, что они доступны только в полной версии. А всякие счетчики, как правило, пишутся в реестр в мусорные имена, но всегда обходятся и ломаются. Программно определить факт обнаружения ключа практически нереально. Соответственно, если я копию вашей программы буду хранить в архиве (а так у меня хранятся все инсталляшки), то она никогда не сможет удалить свою заархивированную копию.

3. Теоретически возможно, но практически труднореализовываемо. Намного удобнее 2.

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация