.NET ソフトウェアの試用版を作成するにはどうすればよいですか?[閉まっている]
-
19-09-2019 - |
質問
Visual Studio にはソフトウェアの試用版を作成するためのツールが組み込まれていますか?そうでない場合、どのようなツールがその仕事を行うことができますか?
.NET プラットフォームで試用版を作成するためのベスト プラクティスは何ですか?
これらの実践はアプリケーションの種類 (Web アプリケーション、Windows フォーム アプリケーション、DLL など) にどのように依存しますか?
解決
「トライアル」ステータスは比較的あいまいな概念です。それを「ツール」として構築できるように、これを正確に指定することは困難です。
どのようなオプションですか?
ローカルにインストール可能なソフトウェア:
法的制限。フル機能はすぐに提供されますが、試用期間が終了したら、ユーザーは喜んで使用を停止する必要があります。基本的には、信託による保護 (個人ユーザーの場合) または法的訴追による保護 (企業ユーザーの場合) です。
機能が制限されています。ユーザーはライトバージョンをダウンロードできます。完全版を使用することに決めた場合は、残りの機能のロックを解除するライセンス キーを要求します。あるいは、完全バージョンの秘密のダウンロード リンクを提供します。透かしを入れたバイナリを作成して、そのソースへの不正な使用/配布を追跡できるようにするとさらに良いでしょう。
ウェブソフトウェア:
- 試用版か完全版かは、ユーザー アカウントで有効になっている機能によって決まります。すべてのユーザーが Web 経由でアプリケーションにアクセスするため、不正な方法でアプリケーションをインストールするためのソフトウェア コピーを持っている人は誰もいません。各ユーザーは自分のアカウントを使用して作業し、自分に許可されている機能にのみアクセスできます。
他のヒント
これはシェアウェアスターターキットの中で非常によく覆われています。それは限られた試験で、安全な起動、登録、ペイパルの統合のためのコードを持っています。強くお勧めします、あなたはそのホイールを発明する必要はありません。
私はあなたを与えたリンクは素晴らしいものではありません、あなたはダウンロードを取得するライセンスを通じてクリックする必要があります。私は、そのキットのC#特定のバージョンを記述するもうリンクを見つけることができません。
次のスレッドをチェックしてください 30日間のタイムトライアルを実施。に
スレッドの1で述べたように試用版の機能を実装するために利用できるツールキットがあります。 は、ユニットの数を制限する保護ツールをコピーします。
Visual Studioはソフトウェアでの試用版の機能を実装するために、いくつかの組み込みツールを提供する場合、私は認識していないです。
Visual Studio または .Net には、ライセンス付与とコピー防止のためのツールが組み込まれています。独自のスキームを開発するか、既製のスキームを使用する必要があります。
ベスト プラクティスとヒントについては、次の記事を参照してください。 CryptoLicensing を使用してソフトウェアをハッカー防止およびクラック防止にする 8 つの方法
免責事項:私は CryptoLicensing の開発会社である LogicNP Software で働いています。
試用版の機能が実装されていることにより、 レジストリからインストールされた日付を読んで、モードが試用版または有効であれば...
これらのクラスが読み込まれ、レジストリにしてから、書き込みに使用することができます...
static string Regname = "Registryname";
public bool writeRegistryKey(string Key, string value)
{
try
{
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(Regname);
key.SetValue(Key, value);
key.Close();
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return false;
}
}
public string readRegistryKey(string Value)
{
try
{
string keyValue = null;
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(Regname);
keyValue = key.GetValue(id).ToString();
key.Close();
return keyValue;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return null;
}
}