私の VB.NET アプリケーションでは、ユーザーが x 日間無料で試用できるようにしたいと考えています。
過去の日数を記録するのに最適な場所はどこですか? レジストリで?誰かがレジストリ キーを削除してから、x 日間の完全な日数を取り戻すことはできませんか?
より良い方法はありますか?
ユーザーのマシンに保存したものはすべて危険にさらされる可能性があります。
このことを真剣に考えている場合、「最善の」オプションは、起動時にアプリが何らかの形式の識別文字列を渡す Web サービスを使用することです。
(そして、これも危うくなる可能性があります)。
識別文字列を生成する目的で、この質問と次の回答を見ることができます
ローカルマシンのどこに何かを保存しても、いつでも削除できるため、問題ありません。
ユーザーはVirtualPCを起動してアプリをインストールし、28日後にVirtualPCをロールバックして再度インストールすることができます。
1つのオプションは、マシンに固有のキーを生成してから、Webサービスでこれを確認することです。これは完全にハッカーの証拠ではありませんが、より優れています。
アプリの試用版で保存された任意のファイルに、アプリの特定のバージョンに固有の情報を追加できます (おそらく、インストール時のタイムスタンプ)。
アプリの試用版がファイルを開こうとすると、この署名がチェックされ、同じインスタンスで作成されていることが確認されます。それ以外の場合、ファイルを開くことは拒否されます。
これにより、アプリを再インストールして使い続けることができなくなります。