![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ограниченние запуска программы
Алексей © (2005-02-02 22:39:00)Помогите!!!
Нужно наложить ограничение на программу по количеству запусков.
Т.Е. допустим разрешается открыть прогамму 20 раз после чего должно появится окно с предложением зарегистрироваться.
Помогите очень нужно .
Печкин (2005-02-04 02:02:00) [1]
> [9] Anatoly Podgoretsky © (03.02.05 22:30)
> ...теперь ты за ним еще день будешь бегать, почему? Чтобы отдать.
Чтобы поддать?
Anatoly Podgoretsky (2005-02-03 22:30:00) [2]Мультик про Простоквашино - теперь ты за ним еще день будешь бегать, почему? Чтобы отдать.
SaveDialog12331 (2005-02-03 21:57:00) [3]Напиши DLL которая запускается rundll32.exe после закрытия программы и вносит изменения в EXE :))))Тупой совет
Proga (2005-02-03 17:11:00) [4]Нет! Самому надо такое. Ну прикиньте-пишете прогу, карячитесь над ней ночами, а потом кто-то взял и присвоил и спасибо не сказал!
Alex175 (2005-02-03 14:22:00) [5]Надо ввобще смириться и дать использовать людям программу сколько они хотят. :)
Proga (2005-02-03 12:31:00) [6]Alex_Petr, чёто не пойму - а где задаётся количество разрешаемых запусков?
Gloomer (2005-02-03 09:04:00) [7]Пожалуй, лучшее место хранения - это реестр. Только ни в коем случае не стоит хранить количество запусков в открытой форме. Применяй кодирование по своему уникальному алгоритму.
Недостаток такого метода: при помощи regmon находим ключ реестра к которому обращается прога и удаляем его.
Поэтому в процессе инсталяции задаем значение ключа и если ключа в реестре нет, значит выдаем приглашение.Но и это все равно можно обойти - запоминаем значение сразу после инсталяции и затем регулярно его восстанавливаем.
diabolik (2005-02-03 05:13:00) [8]Могу предложить писать количество уже произведенных запусков в свою ветку в реестре. А само количество вычислять как предложил Anatoly Podgoretsky. Можно еще хранить в dll все это вместе с функцией а в программу возвращить только результат - true false/ Так наверное даже лучше будет!
Anatoly Podgoretsky (2005-02-02 23:33:00) [9]N := N - 1;
if N <= 0 then Приглашение;
Alex_Petr (2005-02-02 22:51:00) [10]
function TestDblStart(Mut:PAnsiChar):Boolean;
var
Hand:THandle;
begin
Hand:=CreateMutex(nil,True,PAnsiChar('Global\'+Mut));
Result:=GetLastError=ERROR_ALREADY_EXISTS;
if Result then Result:=Hand=0 else CloseHandle(Hand);
end;
// 'Global\' добавляешь, если надо глобально