Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2007, 14:16   #1
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию Работа с датой

Написал программу и на эту программу поставил защиту (проверка ключа) т.е без ключа программа расчитана на 30 запусков, а теперь я хочу сделать следующее: при первом запуске считывается дата и записывается например в ini файл. Затем при следующем запуске эта дата сравнивается с системной и если она больше 30 дней то программа вырубается. Теперь вопрос как осуществить саму математику с датой, т.е. (дата системная - дата начальная).
Заранее благодарен. С уважением Aleksandr!
Aleksandr вне форума Ответить с цитированием
Старый 10.07.2007, 15:01   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Записываем дату в ini-файл при первом запуске
Uses Inifiles;
Код:
var INI: TINIFile;
begin
   INI := TIniFile.Create(ChangeFileExt(ParamStr(0), '.INI'));
   INI.WriteDate('Options', 'data_begin', date);
   INI.free
end;
Проверяем даты
Код:
var data_system, data_begin: TDate;
   INI: TINIFile;
begin
   INI := TIniFile.Create(ChangeFileExt(ParamStr(0), '.INI'));
   data_system := Date;
   data_begin := INI.ReadDate('Options', 'data_begin', 0);
   INI.free;
   if (data_begin = 0) or (data_begin + 30 < data_system) then
   begin
      MessageDlg('Гуд бай', mtInformation, [mbOk], 0);
      hult;
   end;
end;
P.S. Но такая защита совсем дерьмовая. Не сломает только ленивый....
_SERGEYX_ вне форума Ответить с цитированием
Старый 11.07.2007, 10:28   #3
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Спасибо огромное. Мне вообще не нужен был код про запись в ini файл, а только работа с датами. Спасибо еще раз все работает. Я немножко изменил твой код
Код:
var data_system, data_begin: TDate;
  INI: TINIFile;
begin
 INI := TIniFile.Create(ChangeFileExt(ParamStr(0), '.INI'));
  data_system := Date;
  data_begin := INI.ReadDate('Options', 'data_begin', date);
 
 
  if data_system-data_begin  > 30 then
  begin
     MessageDlg('Гудбай', mtInformation, [mbOk], 0);
     INI.free;
     halt;
  end;
и запись в ini файл
Код:
var INI: TINIFile;
data_begin: TDate;
begin
INI := TIniFile.Create(ChangeFileExt(ParamStr(0), '.INI'));
data_begin := INI.ReadDate('Options', 'data_begin', 0);
if data_begin = 0   then
begin INI := TIniFile.Create(ChangeFileExt(ParamStr(0), '.INI'));
  INI.WriteDate('Options', 'data_begin', date);
  INI.free
  end
  else INI.Free;
Aleksandr вне форума Ответить с цитированием
Старый 11.07.2007, 10:43   #4
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Страшно надёжный триал
пыщь
JTG вне форума Ответить с цитированием
Старый 11.07.2007, 16:19   #5
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

Такие вещи лучше шифровать уникальными параметрами компьютера (например серийным номером диска С тогда хоть какая то надежда есть, что не стибрют.
Трофимов Александр вне форума Ответить с цитированием
Старый 11.07.2007, 17:07   #6
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Я использовал несколько способов. Вчастности и проверку серийного номера диска
Aleksandr вне форума Ответить с цитированием
Старый 11.07.2007, 17:44   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Да, это очень трудно раз в месяц в ini файле дату поменять,
который по умолчанию блокнотом открывается
Так все таки
Цитата:
30 запусков
или 30 дней? Если запусков то и дата не нужна.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 11.07.2007 в 17:48.
mutabor вне форума Ответить с цитированием
Старый 11.07.2007, 17:45   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Софт для юридических лиц я защищаю так:
Вместе с программой отдаю заказчику ключ, который сгенерирован по его УНН (учетный номер налогоплательщика), который не может быть изменен. Ведь в документах при печати ему нужно, чтобы там был именно его УНН, а он берется из настроек программы. При клике на кнопку "Печать" вновь генерирую ключ и сравниваю... Если не совпали - в отчете поверх текста большими буквами пишу "Пробная версия". Действует безотказно. А хороших алгоритмов для генерации сейчас полно.
_SERGEYX_ вне форума Ответить с цитированием
Старый 12.07.2007, 08:02   #9
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Делал и на 30 запусков
Aleksandr вне форума Ответить с цитированием
Старый 12.07.2007, 14:17   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Если у юзера очень редко перезагружается комп и много оперативной памяти, 30 запусков можно растянуть на год

И еще совет, уже серьезно. Делай защиту, чтобы при повторной установке опять триал не включался.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 12.07.2007 в 14:21.
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с датой xDjarx БД в Delphi 38 02.05.2009 14:21
Работа с датой Dunpeal Общие вопросы Delphi 5 15.05.2008 12:05
Работа с датой [RR]Reaction Общие вопросы Delphi 3 07.04.2008 21:52
Несовпадение с датой RoZi Помощь студентам 26 28.11.2007 13:05
Манипуляции с датой и временем. Tatyana БД в Delphi 16 29.06.2007 19:19