主题:  求教,怎样限制光碟的播放次数??

mler

职务:普通成员
等级:1
金币:3.0
发贴:268
注册:2000/10/16 15:16:52
#12002/3/19 19:16:17
请问,交多媒体测试版给客户时,,我想让光碟只能播放10次就无法再播放,怎么做??
上次有位朋友说过的,,但我实在是菜鸟,搞不懂,请问具体该怎么写??



acneyouth

职务:普通成员
等级:1
金币:1.0
发贴:181
注册:2004/6/9 10:01:26
#22002/3/20 22:45:17
只能通过注册表了找本注册表的书来看一看然后用fileIO写注册表具体的我也没研究过.



night_5d

职务:普通成员
等级:2
金币:1.0
发贴:275
注册:2000/12/15 21:24:38
#32002/3/20 23:55:42
有个比较苯的方法,就是在第一次运行时在他的机子的系统目录下建立一个文件,名字后缀自己命名,让他找也找不到,然后往里面存数字不就可以了,其实还可以找一个windows的ini文件在里面加一行。最好就是在注册表中自己建立一个主键然后更改键值,但我觉得这样比较容易被人发现,除非起一个很怪的名字。


[img]http://61.144.28.245/hjc/web/non-cgi//usravatars/paladin.gif[/img]
I thirst for freedom

草原风

职务:版主
等级:5
金币:13.0
发贴:3489
注册:2001/2/17 19:47:06
#42002/3/21 9:19:37
这是我以前的一个类似的东东,可以限制使用次数及使用期限,没有修改注册表,只是生成一个文件记录在内的,加密不算太好,用户找到该文件删除可以继续使用,不过你可以试试
=======================================================================
global use

on getTime
dateT=new(xtra "DateTimeXtra")
d=GetDay()
m=GetMonth()
y=GetYear()
return y&"-"&m&"-"&d
end

on startMovie
if use =0 then exit
else
use=0
end if


if getTime()>"2002-1-25" then
警告过期
exit
end if
set Next=1
set Filenum=1
set ALeadyInstall=0
set Filelist=[]
repeat while Next=1
pop=getNthFileNameinFolder("c:\", Filenum)
if pop<>"" then
if pop="command.log" then
set Next=0
set ALeadyInstall=1
getMyRecord "c:\command.log"
exit repeat
end if
Filenum=Filenum+1
else
exit repeat
end if
end repeat
if ALeadyInstall=0 then
InstallMyRecord
end if

end startMovie

on getMyRecord Thefilename
set LastTime=false
FileIoBj=new(xtra "fileio")
FileIoBj.openfile(Thefilename,0)
fileTxt=FileIoBj.readfile()
LookNum=getLookNum(fileTxt)
if LookNum<60 then
if value(LookNum)=void then LookNum=1
LookNum=value(LookNum)+1
FileIoBj.setposition(0)
FileIoBj.writestring(string(LookNum&"#"&LookNum))
FileIoBj.closefile()
FileIoBj=0
put "这是你的第"&value(LookNum)&"次使用本光盘!"----------------------
else
FileIoBj.closefile()
FileIoBj=0
警告过期
end if
set LastTime=true
end

on getLookNum(fileTxt)
set itemDelimiterTemp=the itemDelimiter
set the itemDelimiter="#"
set LookNumTemp=fileTxt.item[1]
set the itemDelimiter=itemDelimiterTemp
return LookNumTemp
end

on 警告过期
alert "本光盘已到期限!请与制作者联系付款事宜"

-- put "请注册"------------------------------
--这里你可以添加自己的代码!
halt
end

on InstallMyRecord
put "这是你的第1次使用本光盘!"----------------------
FileIoBj=new(xtra "fileio")
FileIoBj.createfile("c:\command.log")
FileIoBj.openfile("c:\command.log",0)
FileIoBj.setposition(0)
FileIoBj.writestring("1")
FileIoBj.closefile()
FileIoBj=0
end








编辑历史:[这消息被草原风编辑过(编辑时间2002-03-21 09:20:06)]


donlee

职务:普通成员
等级:1
金币:1.0
发贴:271
注册:2000/12/8 8:52:18
#52002/3/22 8:34:14
我觉得简单的办法是使用setpref与getpref,省去了很多麻烦。当然对它的期待值也不宜太高,它与写文件的功能是一样的。