Речь не о продвинутой защите вроде шифрования кода, а о самых базовых вещах. Для любой шаровары нужно, чтобы юзер не мог удалить программу, переустановить и возобновить таким образом триальный период. Мне сложно было разбираться с реестрами, поэтому для Windows я сделал просто: при первом запуске программа пишет текущую дату в файл, сохраняемый в каталоге Windows для промежуточных файлов (GetTempPath). Есть ли похожие каталоги у Linux и Mac? Мне предложили для Linux делать так: посмотреть, существует ли каталог /var/tmp, а если не существует, вызвать GetUserDir в Lazarus. Насколько это удачное решение, и что вы посоветуете для Mac?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K> Для любой шаровары нужно, чтобы юзер не мог удалить программу, переустановить и возобновить таким образом триальный период.
K> для Windows я сделал просто: при первом запуске программа пишет текущую дату в файл, сохраняемый в каталоге Windows для промежуточных файлов (GetTempPath).
Классно облегчил жизнь пользователю. Ему софт даже переустанавливать не потребуетсся
Здравствуйте, Khimik, Вы писали:
K>Речь не о продвинутой защите вроде шифрования кода, а о самых базовых вещах. Для любой шаровары нужно, чтобы юзер не мог удалить программу, переустановить и возобновить таким образом триальный период. Мне сложно было разбираться с реестрами, поэтому для Windows я сделал просто: при первом запуске программа пишет текущую дату в файл, сохраняемый в каталоге Windows для промежуточных файлов (GetTempPath). Есть ли похожие каталоги у Linux и Mac? Мне предложили для Linux делать так: посмотреть, существует ли каталог /var/tmp, а если не существует, вызвать GetUserDir в Lazarus. Насколько это удачное решение, и что вы посоветуете для Mac?
Как вариант, сделать триал по регистрации на сайте и все даты проверять уже на сервере.
Здравствуйте, Khimik, Вы писали:
K>Речь не о продвинутой защите вроде шифрования кода, а о самых базовых вещах. Для любой шаровары нужно, чтобы юзер не мог удалить программу, переустановить и возобновить таким образом триальный период.
Чтобы пользователь не смог стереть триальную метку — ее нужно хранить у себя на сервере, а не на компьютере пользователя.
Здравствуйте, Khimik, Вы писали:
K>Речь не о продвинутой защите вроде шифрования кода, а о самых базовых вещах. Для любой шаровары нужно, чтобы юзер не мог удалить программу, переустановить и возобновить таким образом триальный период. Мне сложно было разбираться с реестрами, поэтому для Windows я сделал просто: при первом запуске программа пишет текущую дату в файл, сохраняемый в каталоге Windows для промежуточных файлов (GetTempPath). Есть ли похожие каталоги у Linux и Mac? Мне предложили для Linux делать так: посмотреть, существует ли каталог /var/tmp, а если не существует, вызвать GetUserDir в Lazarus. Насколько это удачное решение, и что вы посоветуете для Mac?
имхо, проще на свой сервер отправлять какой-нибудь hardware id, и там простеньким скриптом проверять и возвращать ответ — триал, истекший триал или зарегистрированная (работы на 1 день максимум). Все равно сейчас все подключены к сети 24/7.
Здравствуйте, drVanо, Вы писали
V>Чтобы пользователь не смог стереть триальную метку — ее нужно хранить у себя на сервере, а не на компьютере пользователя.
Тогда в пределе нужен просто онлайн-сервис, а не полноценная программа на компе. Если так и так требовать для работы онлайн.
Здравствуйте, Michael7, Вы писали:
M> V>Чтобы пользователь не смог стереть триальную метку — ее нужно хранить у себя на сервере, а не на компьютере пользователя.
M> Тогда в пределе нужен просто онлайн-сервис, а не полноценная программа на компе. Если так и так требовать для работы онлайн.
Это, конечно, идеальный вариант, но подходит не всем. Однако, можно обойтись просто требованием онлайна для первого запуска: получить hardware-id, передать на сервер и получить файл триальной лицензии подписанный ключем сервера. На клиенте останется только контролировать корректность подписи, ничего и никуда прятать не придется. Конечно, эту схему ломает замена открытого ключа, но от этого можно защититься.
Здравствуйте, rudzuk, Вы писали:
K>> Для любой шаровары нужно, чтобы юзер не мог удалить программу, переустановить и возобновить таким образом триальный период.
K>> для Windows я сделал просто: при первом запуске программа пишет текущую дату в файл, сохраняемый в каталоге Windows для промежуточных файлов (GetTempPath).
R>Классно облегчил жизнь пользователю. Ему софт даже переустанавливать не потребуетсся
Неужто на Западе юзеры все продвинутые, и не боящиеся нарушать авторские права? Например то что наверху главного окна программы будет написано trial version — на это им будет плевать?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Michael7, Вы писали:
V>>Чтобы пользователь не смог стереть триальную метку — ее нужно хранить у себя на сервере, а не на компьютере пользователя.
M>Тогда в пределе нужен просто онлайн-сервис, а не полноценная программа на компе. Если так и так требовать для работы онлайн.
Здравствуйте, Khimik, Вы писали:
K> R>Классно облегчил жизнь пользователю. Ему софт даже переустанавливать не потребуетсся
K> Неужто на Западе юзеры все продвинутые, и не боящиеся нарушать авторские права?
Продвинутость тут совершенно ни при чем. Просто, даже стандартный Disk Cleanup сотрет все временные файлы. Да и нарушения прав тут никаких нет: юзер софт не дизассемблирует, не модифицирует...
K> Например то что наверху главного окна программы будет написано trial version — на это им будет плевать?
Использование триальной версии не преступление Один из самых распространенных вариантов "кряков" — trial reset. Ну что может быть лучше неинвазивного "кряка"?
Как по мне, одна лишь надпись trial — хреновый способ мотивации.
p.s. GetTempDir — кроссплатформенный способ получить путь ко временным файлам.
Здравствуйте, Khimik, Вы писали:
K>Речь не о продвинутой защите вроде шифрования кода, а о самых базовых вещах. Для любой шаровары нужно, чтобы юзер не мог удалить программу, переустановить и возобновить таким образом триальный период. Мне сложно было разбираться с реестрами, поэтому для Windows я сделал просто: при первом запуске программа пишет текущую дату в файл, сохраняемый в каталоге Windows для промежуточных файлов (GetTempPath). Есть ли похожие каталоги у Linux и Mac? Мне предложили для Linux делать так: посмотреть, существует ли каталог /var/tmp, а если не существует, вызвать GetUserDir в Lazarus. Насколько это удачное решение, и что вы посоветуете для Mac?
Я делаю самый простой вариант для мака и винды: программа хранит свой конфиг и данные в файле, обычно XML или SQLITE. Триал считается от даты создания этого файла.
Правда для линкуса это не подойдет, внезапно там у файлов нету даты создания. Но можно отдельным полем добавить в файл при первом запуске.