HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0212
(^ω^)HSPに使用期限をつける6解決


(^ω^)

リンク

2011/2/12(Sat) 01:00:48|NO.37023

HSPのソフトに使用期限をつけたいです

30日たつと自動的にソフトが起動しなくなるようにしたいです

どうすればいいですか?

出来ればサンプルソースとか張って貰えると嬉しいです



この記事に返信する


ORZ

リンク

2011/2/12(Sat) 01:21:26|NO.37025

そうかもう小学校も冬休みか。。。



hexa.hemi

リンク

2011/2/12(Sat) 01:22:58|NO.37026

起動時にレジストリ(ファイル)を読み込んで30日経過していたら終了する。
もしレジストリ(ファイル)がない場合は新たに作成し、日付を書き込む。
とすればできそうですが、レジストリ(ファイル)が改変されるor消された場合、
パソコンの日付を変更された場合にどう対処するかが問題になります。
ウェブにサーバーを置いてサーバーに初めて起動したときの日付を置いたり
サーバーの時刻を取得したりすれば解消できそうですが
インターネットが接続できない環境やファイアーウォールや
アンチウイルスソフトで接続をブロックされたの場合の対処が
必要になってくると思います。



skyblue

リンク

2011/2/12(Sat) 09:09:22|NO.37028

起動時に設定ファイルを作り、日時をそれに書き込む。
Vista以降はApplication Dataに書き込むこと。



ひよこ

リンク

2011/2/12(Sat) 11:14:27|NO.37030

>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さんの言うとおり、時間の使用期限なんて結構簡単に解除できちゃいます。
このサンプルは同じディレクトリに期限をユリウス日で保存してますが、
それを削除すればいくらでも期限を延ばせます。そうでなくてもパソコンの日付を変えても同じです。
クラックについて考えるのであれば、回数などの期限もつけるのがいいと思います。
それだけでもだいぶ解除されにくくなると思います。保存するとき暗号化するのも忘れずに。

後半のほう、ちょっと本題からそらしちゃいました。ごめんなさい。



ひよこ

リンク

2011/2/12(Sat) 14:48:39|NO.37032

あっ。サンプルにミスありました。
期限を過ぎているかどうかの判定のところ、
if ユリウス>int(期限) {	;期限を過ぎていれば、

ではなくて
if ユリウス>=int(期限){	;期限を過ぎていれば、
ですね。

すいませんでした。



(^ω^)

リンク

2011/2/12(Sat) 22:19:28|NO.37055

ひよこs

まさかにこれです!!!

ありがとうございます 

感謝しています!!



ONION software Copyright 1997-2023(c) All rights reserved.