Создание триальных приложений в Delphi
Только одна программа за сеанс Windows
Если Вам нужно позволить пользователю выполнить Ваше приложение только один раз за сеанс Windows, Вы можете использовать следующую "уловку":
Для простоты форма будет называться FormMain.
Для создания приложения TrialSessionWindows, Вы должны вручную отредактировать исходный текст проекта (DPR).
Использование функций API GlobalFindAtom и GlobalAddAtom, Вам потребуется использование модуля Windows в секции uses.
Когда пользователь запускает приложение, код проверяет создана ли строка УНИКАЛЬНЫЙ-ТЕКСТ в глобальной таблице атомов Windows. Если атом не найден, приложение запускается, а строка добавляется в таблицу атомов.
Когда пользователь запускает приложение второй раз, выскакивает предупреждение Защита триальной версии, а приложение прекращает работу, даже не запустившись.

Пользователь может только запустить это приложение во второй раз, когда перезапустит Windows (когда будет очищена глобальная таблица переменных атомов).
program OncePerSessionTrialTest;
uses
Windows,
Forms,
mainUnit in 'mainUnit.pas' {FormMain};
{$R *.res}
begin
Application.Initialize;
if 0 = GlobalFindAtom('УНИКАЛНЫЙ-ТЕКСТ') then
begin
GlobalAddAtom('УНИКАЛЬНЫЙ-ТЕКСТ') ;
Application.CreateForm(TFormMain, FormMain) ;
Application.Run;
end
else
begin
Application.MessageBox(
'Вы можете выполнить триальную версию ' + #13 +
'этого приложения ' + #13 +
'только один раз за сеанс Windows!',
'Защита Триальной Версии') ;
end;
end.
Примечание: В Windows таблица атомов - это определенная системой таблица, которая хранит строки и соответствующие идентификаторы. Приложение помещает строку в таблицу атомов и получает 16-разрядное целое число, которое называется атомом, который может использоваться для обращения к строке.
Комментарии