>30日たつと自動的にソフトが起動しなくなるようにしたいです
>どうすればいいですか?
サンプル
;ユリウス日を求めるモジュール さくらさんのhttp://hspnext.com/hspkura/hspkura07.htm#contents12より引用
#define global ctype round(%1) double(strf("%%0.0f", %1))
#define global ctype sjuliusday(%1,%2,%3) (365.25*%1)+(%1/400)-(%1/100)+(30.59*(%2-2))+%3-678912
#module
#deffunc julius var prm1,int prm2,int prm3,int prm4
; prm1 : 取得用変数, prm2 : 年(yyyy形式), prm3 : 月(mm), prm4 : 日(dd)
y = prm2 : if (y<=0)|(y>3000) : y =gettime(0)
m = prm3 : if (m<=0)|(m>12) : m =gettime(1)
d = prm4 : if (d<=0)|(d>31) : d =gettime(3)
;▼準ユリウス日を計算
MJD = sjuliusday(y,m,d)
;▼ユリウス日を計算
JD=round(MJD+2400002.5) : prm1=int(JD)
return 0
#global
期限ファイル = "kigen.dat" ;保存するファイル名。ソースと同じディレクトリに作られます。
期限 = ""
ユリウス = 0 ;ユリウス日を入れる変数。
notesel 期限
exist 期限ファイル
if strsize=-1 { ;期限のファイルがなければ=はじめてソフトをつかうのであれば、
julius ユリウス
期限 = ""+(ユリウス+30)
notesave 期限ファイル ;期限を保存する。
mes "はじめまして。期限は今日より30日です。"
stop
} else { ;期限のファイルがあれば=このソフトをつかったことがあれば、
noteload 期限ファイル
julius ユリウス
if ユリウス>int(期限) { ;期限を過ぎていれば、
mes "期限になりました。御試用ありがとうございました。"
stop
}
mes "期限まであと"+(int(期限)-ユリウス)+"日です。"
stop
}
バグあるかもしれません。読みにくくてすいません。
30日期限についてはこんなものだと思います。
しかしhexa.hemiさんの言うとおり、時間の使用期限なんて結構簡単に解除できちゃいます。
このサンプルは同じディレクトリに期限をユリウス日で保存してますが、
それを削除すればいくらでも期限を延ばせます。そうでなくてもパソコンの日付を変えても同じです。
クラックについて考えるのであれば、回数などの期限もつけるのがいいと思います。
それだけでもだいぶ解除されにくくなると思います。保存するとき暗号化するのも忘れずに。
後半のほう、ちょっと本題からそらしちゃいました。ごめんなさい。