Создание триальных приложений в 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-разрядное целое число, которое называется атомом, который может использоваться для обращения к строке.
Комментарии