.net Windows アプリケーションの exe があります。試しにexeをクライアントと共有したいので、1週間だけの利用を制限したい。現在の日付を使用して比較することを想定してDateTime
いましたが、ユーザーがシステムの日付を元に戻すと機能しません。
解決策はありますか?
ユーザーがいつアプリを起動したかを確認し、日付のカウントを隠しファイルに保存します
サンプル
if (File.Exists("startapp.txt")
{
using (StreamWriter writeFile = new StreamWriter("startapp.txt"));
{
StreamReader sr = new StreamReader("startapp.txt");
int count = int.Parse(sr.ReadToEnd());
sr.Close();
count++;
writeFile.WriteLine(count.ToString());
}
}
else
{
FileStream fs = File.Create("startapp.txt");
fs.Close();
File.SetAttributes(
"startapp.txt",
FileAttributes.Archive |
FileAttributes.Hidden |
);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("1");
}
次に、ファイルを読み取って、それが7
.
アプリケーションがインターネット アクセスを必要とする場合は、時刻文字列を返す次の Web サービスを呼び出して、現在の日付と時刻をテストすることができます。
http://www.timeapi.org/utc/now
たとえば、それは戻ります
2013-09-23T11:05:08+01:00
これは、ISO 8601 形式の現在の時刻です。最初の文字は現在の日付を yyyy-mm-dd 形式で表していることに注意してください。
アプリがインターネット アクセスを必要としない場合でも、ユーザーがアプリを起動するのに 5 回ごとに、インターネット経由で現在の時刻を確認する必要がある場合があります。スマートフォンを含む今日の多くのアプリケーションは、サーバーに接続するため、または登録キーを確認するためだけにインターネット アクセスを必要とします。