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