Я думаю, что лучшее решение - это приложение с ограниченным набором функций - скажем, вы можете выполнять основные операции, но, чтобы воспользоваться лучшими функциями, вам необходимо получить платную лицензию. Это делает две вещи - при условии, что ваше приложение хорошо сделано и интересно для различных пользователей. Во-первых, вы можете привлечь большее количество людей, чтобы они попробовали ваше приложение. Во-вторых, вы можете получить хорошую волю, выпустив бесплатную «облегченную» версию.
Если вам действительно нужно провести ограниченную по времени пробную версию, то я бы посоветовал записать зашифрованный ключ в реестр (windows) или точечный файл (linux). Этот ключ может закодировать дату истечения срока действия. Использование обратимого шифрования позволяет вернуть это значение обратно. Использование секретного ключа помогает защитить кого-либо от создания собственного (действительного) ключа. Полностью лицензированное приложение может использовать тот же механизм ключей, но шифровать значение ключа, которое позволяет использовать его постоянно.