Текущий архив: 2007.08.05;
Скачать: CL | DM;
Вниз
Работа с датой Найти похожие ветки
← →
AleksandrR © (2007-07-10 14:18) [0]Написал программу и на эту программу поставил защиту (проверка ключа) т.е без ключа программа расчитана на 30 запусков, а теперь я хочу сделать следующее: при первом запуске считывается дата и записывается например в ini файл. Затем при следующем запуске эта дата сравнивается с системной и если она больше 30 дней то программа вырубается. Теперь вопрос как осуществить саму математику с датой, т.е. (дата системная - дата начальная).
Заранее благодарен. С уважением Aleksandr!
← →
Ega23 © (2007-07-10 14:45) [1]Воспользоваться функцией IncDay:
function TfmMain.IncDay(const DateTime: TDateTime; NumberOfDays: Integer): TDateTime;
{Функция предназначена для изменения даты (DateTime) путем добавления количества дней (NumberOfDays). Значение NumberOfDays может быть отрицательным.}
var
Y, M, D, CountDays: Word;
N: Integer;
Sign, NoBreak: Boolean;
begin
Sign := NumberOfDays >= 0;
DecodeDate(DateTime, Y, M, D);
N := NumberOfDays;
NoBreak := True;
if Sign then //Прибавить
begin
while(NoBreak) do
begin //Количество дней в месяце
CountDays := MonthDays[IsLeapYear(Y), M];
if (N + D) <= CountDays then //Если в пределах данного месяца
begin
Inc(D, N);
NoBreak := False;
end
else
begin
if M < 12 then
Inc(M, 1)
else
begin
M := 1;
Inc(Y, 1);
end;
N := N - (CountDays - D);
D := 0;
end;
end;
end
else //Отнять
begin
N := -N;
while(NoBreak) do
begin
if D > N then //Если в пределах данного месяца
begin
Dec(D, N);
NoBreak := False;
end
else
begin
if M > 1 then
Dec(M, 1)
else
begin
M := 12;
Dec(Y, 1);
end;
//Количество дней в месяце
CountDays := MonthDays[IsLeapYear(Y), M];
N := N - D;
D := CountDays;
end;
end;
end;
Result := EncodeDate(Y, M, D);
//Установить время из старой даты
ReplaceTime(Result, DateTime);
end;
← →
clickmaker © (2007-07-10 14:46) [2]пиши зашифрованной при первом запуске. Если попытаются подменить, сделай, чтоб программа писала "неверный файл ключа" и отваливала
← →
Rouse_ © (2007-07-10 14:46) [3]Жжош Легыч :) Небось специально хранил ;)
← →
homm_ro (2007-07-10 14:47) [4]> [1] Ega23 © (10.07.07 14:45)
Епа…
На пхп это одна строка.
← →
Ega23 © (2007-07-10 14:48) [5]
> Жжош Легыч :) Небось специально хранил ;)
Я такие вещи всегда храню!
← →
Ega23 © (2007-07-10 14:49) [6]
> homm_ro (10.07.07 14:47) [4]
Открыть секрет? :)
← →
homm_ro (2007-07-10 14:49) [7]Ну да :)
← →
Ega23 © (2007-07-10 14:51) [8]
> Ну да :)
Почитай хелп по Tdatetime :)
← →
Сергей М. © (2007-07-10 15:11) [9]
> как осуществить саму математику с датой
А причем здесь 30 запусков ?
← →
Германн © (2007-07-10 15:12) [10]
> Rouse_ © (10.07.07 14:46) [3]
>
> Жжош Легыч :) Небось специально хранил ;)
>
Да у него небось все стены облеплены подобными перлами. Даже в сортире :)
← →
Германн © (2007-07-10 15:13) [11]
> Сергей М. © (10.07.07 15:11) [9]
>
>
> > как осуществить саму математику с датой
>
>
> А причем здесь 30 запусков ?
>
Следущим будет вопрос: "Как сделать так, чтобы программа запускалась только один раз в день?"
:)
← →
Сергей М. © (2007-07-10 15:16) [12]
> поставил защиту
Грош цена такой "защите" в базарный день.
← →
Anatoly Podgoretsky © (2007-07-10 15:45) [13]
> А причем здесь 30 запусков ?
Ни причем, читай внимательно вопрос.
Разница между было и хочу
← →
Anatoly Podgoretsky © (2007-07-10 15:47) [14]
> Следущим будет вопрос: "Как сделать так, чтобы программа
> запускалась только один раз в день?"
Да пусть немного поразвлекается.
Такая корова нужна самому,
Такую корову не продам никому.
← →
Johnmen © (2007-07-10 17:13) [15]Я вот не понимаю, как люди с такими знаниями умудряются писать программы, которые надо защищать?
Или это обыкновенная паранойя?
← →
Скарамуш © (2007-07-10 19:09) [16]Не, больше всего мне нравится:
> при первом запуске считывается дата и записывается например
> в ini файл
</
> clickmaker © (10.07.07 14:46) [2]
> пиши зашифрованной при первом запуске. Если попытаются подменить,
> сделай, чтоб программа писала "неверный файл ключа" и отваливала
I>
Взять да и порешить ini-шник, прога не найдёт и создаст новый. С новой датой (Я так понимаю, что прога на FormCreate дату записывать будет? А в таком случае - или ini есть и тогда - считать, или - нет, и тогда - создать.) Тогда уж лучше в реестр.
Кстати, через реестр - тоже чушь, если уж ini лезть, который х.з. где запрятан может быть, то реестр уж почистить по дате - милое дело...
Как хорошо раньше вот так шареварные проги и прописывались простенько в реестр, без всяких там хитростей... Крассотищща!
← →
Ega23 © (2007-07-10 19:14) [17]
> Как хорошо раньше вот так шареварные проги и прописывались
> простенько в реестр, без всяких там хитростей... Крассотищща!
Дату сместить можно. Да и не обязательно дату писать. В смысле, как datetime.
Наизголяться можно по самое нехочу.
Вот только может и не быть прав на запись в реестр... :)
Страницы: 1 вся ветка
Текущий архив: 2007.08.05;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.029 c