|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.03.2012, 19:55 | #1 |
Пользователь
Регистрация: 26.02.2010
Сообщений: 66
|
закрытие программы по дате
Как сделать, чтобы после первого запуска программы, которая написана на Delphi (точное день и время) программа закрылась ровно через пять дней именно после первого запуска, даже если программу запускали много раз все эти дни.
|
16.03.2012, 20:09 | #2 |
Форумчанин
Регистрация: 21.10.2008
Сообщений: 337
|
Логика: При запуске программы проверяем в реестре запись, например DATREG=16.03.2012. Если эта запись есть, то считываешь 16.03.2012 и сравниваешь с сегодняшней датой (NOW). ЕСли она больше 5 дней, то form1.close; Если нет то ничего не делаем.
Если нет записи никакой, то записываем в реестр дату. |
16.03.2012, 20:57 | #3 | |
Пользователь
Регистрация: 26.02.2010
Сообщений: 66
|
Цитата:
P.S. Повышу репутацию |
|
16.03.2012, 21:30 | #4 |
Форумчанин
Регистрация: 21.10.2008
Сообщений: 337
|
Конечно, задавали бы лучше конкретные вопросы! :
1. Работа с реестром. В Uses добавляем registry. И примерное чтение-запись под себя исправляйте. Нужно в FormCreate например, поставить код. 2. Код:
|
19.03.2012, 17:26 | #5 |
Пользователь
Регистрация: 26.02.2010
Сообщений: 66
|
Спасибо, что откликнулись!
1) У меня в реестре по такому пути "HKEY_LOCAL_MACHINE\SOFTWARE\MICROS OFT\Prog\Date" нет такого раздела Prog! Windows 7 x 64. 2) значение dat (дата первого открытия файла) записывается в реестр (или в другое место) один раз после первого открытия файла, после второго открытия файла в этот день или на следующий день эта процедура перестаёт работать и ничего больше не записывает. Где тогда использовать procedure TForm1.zapis ? 3) а можно не использовать Edit1 или сделать его невидимым (Edit1.Visible:=false; ). Если сделать Edit1 невидимым, то будет ли работать программа? Код:
Последний раз редактировалось krikaved; 19.03.2012 в 17:33. |
20.03.2012, 13:18 | #6 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
а можно дурацкий вопрос?
зачем вам закрывать прогу по дате? неужто вы так ее защитить пытаетесь? лучше погуглите что-нить про защиту по. |
21.03.2012, 14:38 | #7 | |
Пользователь
Регистрация: 26.02.2010
Сообщений: 66
|
Цитата:
Причем тут защита?! Задача стоит весьма интересная. Если никто не может помочь решить вопрос по дате, то хотя бы подскажите: Каким образом при первом запуске программы можно совершить одно лишь действие и больше его не повторять вовсе, даже если программу потом закрывают и открывают снова. По какому событию это сделать или какая это должна быть функция, подскажите пожалуйста? |
|
21.03.2012, 15:05 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
общий подход должен быть такой. При запуске программа записывает проверяет где-нибудь в "секретном" месте особую отметку. Если этой отметки нет - значит это первый запуск. Пишем туда нашу отметку и выполняем то, что нужно делать при ПЕРВОМ запуске. Если же отметка имеется, значит запуск НЕ ПЕРВЫЙ. вопрос стоит только в том, где и как делать эту самую отметку... Но тут всё очень сильно зависит от того, по каким правами запущена программа. Если под админскими, то всё просто. Как вам уже советовали ранее, пишете отметку в реестр, в раздел HKLM (HKEY_LOCAL_MACHINE) а вот если запуск осуществлён из под учётной записи с ограниченными правами, то всё значительно хуже... операционная система с нормальной защитой будет препятствовать Вам гадить где не попадя... и я, например, не вижу надёжного и красивого решения при запуске программы из под Windows 7 с включённым UAC и запуске не от имени администратора.. p.s. теоретически можно поднять сайтик, на который оправлять какой-то уникальный ключик и получать ответ... но тогда без интернета программа вообще запускаться не должна. p.p.s. а действительно, нафига Вам эти сложности?! Как защита, это слабенько! Если мне понадобится, то я на 99.9% уверен, что смогу запустить вашу программу столько раз в день, сколько мне понадобится А если это не защита, то зачем Вам эти танцы с бубном?! |
|
21.03.2012, 15:16 | #9 | |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
Цитата:
Интересная тема на счет защиты, почитал бы. |
|
21.03.2012, 15:52 | #10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
во-вторых, подобный взлом потребует вполне ощутимых затрат времени и сил, наличие определённого опыта, разработка программы, эмулирующей сервер и т.д. скорее всего проще будет проверку в самой программе отломать... а в-третьих, самое главное, я где-то написал, что это надёжная "невзламываемая" система??!!! Вон, автор темы утверждает, что это вообще к защите отношения никакого не имеет. И, следовательно, раз это не защита, то и ломать это никто не будет! только не спрашивайте меня, зачем TC эти танцы нужны - я сам не понимаю! |
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Закрытие программы | nikityan | Общие вопросы Delphi | 8 | 01.03.2012 00:33 |
Закрытие программы | SKS | Помощь студентам | 3 | 13.11.2011 15:39 |
Закрытие программы | ray_1k | Общие вопросы C/C++ | 12 | 09.07.2011 17:40 |
Закрытие программы | Byurrer | Общие вопросы C/C++ | 8 | 06.04.2011 17:44 |
Закрытие программы | Zloy_Doomer | Общие вопросы Delphi | 3 | 23.06.2008 19:08 |