Как сделать систему лицензирования в delphi?
Привожу пример. При запуске программы появляется окно, и в нем написан hwid компьютера. И кнопка "авторизоваться", при нажатии отправляется запрос к бд на сайте, и если hwid = hwid в бд, то запускается другая форма. Если не равно, то выскакивает окно "нету лицензии".
HWID может поменяться при замене винчестера, сетевой карты или другого железа, если сильно хочется привязки железно, то для этого существуют usb ключи.
Есть готовые коммерческие решения поддерживаемые группами спецов, дешевле купить что-то готовое чем тратиться на разработку такого велосипеда, который поломают в первую неделю, если приложение востребовано.
Если же оное мало кому нужно, то могут пройти месяцы до того, как какой-то крякер этим заинтересуется, но непрофессиональную защиту сломают точно.
Ещё вариант - это перенос части логики в WEB, где например будут храниться данные пользователя, настройки, документы, база и т.п., Мало кому захочется передавать свой логин с ключом и паролем от кладовки с бельём, но и хранение данных у Вас на сервере пользователям тоже может не понравиться, даже если Вы будете утверждать что всё 100% защищено и зашифровано.
Кроме того, отсутствие возможности пользоваться софтом без подключения к сети так-же многим может не понравиться, если в этом нет острой необходимости.
Ранее уже привели ссылку на стэковерфлоу, там перечислены готовые решения, есть так-же и отечественные разработки с юсб донглами, это уже зависит от того какова ценность приложения.
С донглами сложно, железки стоят денег, ключи надо шить и высылать юзерам, кроме того они занимают порты, ломаются или теряются, а цифровые регистрации можно генерировать на полном автомате. Может Вам подойдёт и что-то баксов за 200-300, просто изучите имеющиеся на рынке инструменты, посмотрите возможности и примеры использования, но уверяю Вас, самостоятельно решать такую задачу Вы будете долго и вероятно не очень успешно, лучше потратить время на разработку самого приложения.
И надо учитывать цену, то что стоит баксов 10, раньше купят чем поломают, а что стоит 999 - предпочтут сломать.
Добавить 3 юнита:
1 - авторизация
есть в базе: появляется 2 - окно зарегистрированной программы
нет в базе: появляется 3 - окно с сообщением о необходимости лицензии и Application.Terminate;