вторник, 1 апреля 2014 г.

Проблемы, возникающие при подготовке Windows-программ для распространения. Часть 2. Диалог активации

Если используемый вами протектор имеет встроенные функции отображения диалога(ов) активации, значит, эта печаль обошла вас стороной (если, конечно, вас всё устраивает в этих диалогах). API VMProtect не не предоставляет подобных функций, поэтому диалог активации нам пришлось делать самим.

Для того, чтобы диалог активации можно было легко перенастроить под потребности любого приложения, он бы спроектирован таким образом, чтобы поддерживать все возможные типы и способы активации.

Способы активации

Ориентируясь на API VMProtect и на собственные потребности, были сформулированы требования к диалогу активации. Так, от диалога активации требуется уметь активировать приложение следующими способами:

  • Активировать при помощи серийного номера
  • Активировать при помощи ключевого файла лицензии
  • Активировать пробную версию

Если приложение позволяет работу в режиме без активации (в том числе и без активации пробной лицензии), необходимо также добавить опцию "активировать позже".

Если приложение позволяет производить offline активацию (в API VMProtect для этого есть соответствующие функции), то необходимо предусмотреть возможность отображения данных для offline активации.

Ввод серийного номера

Поле ввода серийного номера принято отображать как несколько полей ввода, с автоматическим переходом между ними при заполнении каждого из них.

Также неплохо предусмотреть возможность вставки серийного номера из буфера обмена сразу во все поля ввода или в текущее, в зависимости от того, содержится ли в буфере обмена серийный номер целиком, или в него скопирована только часть серийного номера.

Серйиный номер, в общем случае, может состоять из любых символов, но обычно используются цифры и латинские буквы в верхнем или нижнем регистре. Если в серийном номере используются символы только в одном регистре, то следует предусмотреть автоматическое преобразование регистра вводимых символов.

Если серийный номер может содержать достаточно произвольные символы, то следует предусмотреть возможность фильтрации пользовательского ввода таким образом, чтобы допускать ввод символов либо только из набора допустимых символов, либо исключать ввод символов из набора недопустимых.

Типы активации

Под типами активации подразумевается возможность активировать приложение:

  • только для текущего пользователя
  • для всех пользователей данного компьютера

Если вы хотите создать качественное приложение, и/или у вас гибкие условия лицензирования использования приложения, то вам следует предоставлять пользователю возможность выбора типа активации.

Повышение привелегий

Если для диалога активации включена возможность выбора типа активации, то на диалоге нужно предусмотреть кнопку для повышения привилегий (с соответсвующим стандартным значком). Данную кнопку следует блокировать, если выбранный тип активации не требует повышения привилегий, и разблокировать, если выбранный тип активации этого требует.

Кастомизация внешнего вида диалога

Диалог активации может иметь фиксированные размеры, но иногда это может быть неудобно пользователям. Следует предусмотреть поддержку изменения размеров диалога с соответствующим изменением размера и положения элементов ввода.

Также не стоит прибивать гвоздями расположение кнопок "Ok", "Отмена", "Повысить привилегии" - желательно предусмотреть возможность их расположения слева, справа или по центру; в нижней части диалога или выровненными по верхнему краю.


Комментариев нет:

Отправить комментарий