Карта сайтаСсылкиКонтакты

Создание триальных приложений в Delphi

PDF Печать
Статьи

Если Вы делаете коммерческое или шароварное приложение, Вы должны защитить Ваши приложения от незаконного использования. Имеется много способов защиты приложений Delphi, но как сделать крутую защиту, да еще простую в разработке?

Только одна программа за сеанс Windows

Если Вам нужно позволить пользователю выполнить Ваше приложение только один раз за сеанс Windows, Вы можете использовать следующую "уловку":

Для простоты форма будет называться FormMain.

Для создания приложения TrialSessionWindows, Вы должны вручную отредактировать исходный текст проекта (DPR).

Использование функций API GlobalFindAtom и GlobalAddAtom, Вам потребуется использование модуля Windows в секции uses.

Когда пользователь запускает приложение, код проверяет создана ли строка УНИКАЛЬНЫЙ-ТЕКСТ в глобальной таблице атомов Windows. Если атом не найден, приложение запускается, а строка добавляется в таблицу атомов.

Когда пользователь запускает приложение второй раз, выскакивает предупреждение Защита триальной версии, а приложение прекращает работу, даже не запустившись.

Oops!

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


 

Добавить комментарий


Защитный код
Обновить