软件有效期控制问题

cd_fsy2000 2001-10-03 11:27:08
各位老大小弟有一问题请教:
我做了一桑那收银系统准备卖给一公司,老板叫我做一时间控制,有效期为2个月,就是2个月后如不交清费用就失效。
请问我该怎么做?(最好有原码)
...全文
248 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenland 2002-02-28
  • 打赏
  • 举报
回复
我觉得用TINIFile文件类蛮好的,又方便省事,在一个不显眼的角落建一个
。ini文件,然后用TINIFile文件类的函数读取写入字符串,可以代替注册表。
cd_fsy2000 2002-02-28
  • 打赏
  • 举报
回复
怎样从注册表中取以前写入的东西?
stanely 2001-10-21
  • 打赏
  • 举报
回复
我不会delphi,我用bcb,写数据库我没有用过,但是我帮一个会pb的人除了这个主意,她用了觉得不错,你到pb论坛找xingjiaren(sandy)吧,就是她(girl):)
berl 2001-10-19
  • 打赏
  • 举报
回复
车,一大堆用系统时间的人.
DATETIME() IS ERROR!
SOFTICE!
咚咚咚咚咚咚 2001-10-19
  • 打赏
  • 举报
回复
up
cd_fsy2000 2001-10-19
  • 打赏
  • 举报
回复
to:stanely(暗黑),liang_z(千山一刀之忍者神龟) 谢谢您!但我做不来,能详细一点吗?(最好有原码),我会再加分的,都有份
‘加密得数据库存放日志文件,这样即便找到了数据库文件,也打不开。而且你作个监测数据库文件以及格式的模块,防止别人伪造数据库文件’。

































































1









 
zds0707 2001-10-18
  • 打赏
  • 举报
回复
stanely(暗黑) 的办法不错
snjun 2001-10-18
  • 打赏
  • 举报
回复
同意暗黑
现在高手多,加密难做
stanely 2001-10-18
  • 打赏
  • 举报
回复
改注册表很容易被人看出来。
建议你用加密得数据库存放日志文件,这样即便找到了数据库文件,也打不开。而且你作个监测数据库文件以及格式的模块,防止别人伪造数据库文件。
poleax 2001-10-18
  • 打赏
  • 举报
回复
另外,你可在程序终止前将当天的日期写入注册表,在程序启动时取出上次使用程序的日期,再

if 现在的日期<上次使用程序的日期 then
application.terminate;
poleax 2001-10-18
  • 打赏
  • 举报
回复
给你一个写注册表的方法:
user Registry

procedure WriteReg(ARootKey: DWORD; ASubKey, AKeyName: string; AValue: string);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := ARootKey;
if reg.OpenKey(ASubKey,true) then
reg.WriteString(AKeyName,AValue);
finally
reg.CloseKey;
reg.Free;
end;
end;
cd_fsy2000 2001-10-18
  • 打赏
  • 举报
回复
更正;
procedure timecontrol(sender;Tobject)'
var nowtime,time;Tdatetime;
nowtime;=now;
time;='2001-12-00 12:00:00';
if nowtime>=time then
beign
showmessage('时间已到期,相关事宜请与本公司联系!');
exit;
end;
现在的问题是:
我不会在注册表中写time?
但用户改变系统time时就又可以用了,各位大哥有更好的方法吗?小弟一定给分!


cd_fsy2000 2001-10-18
  • 打赏
  • 举报
回复
各位老大,小弟又回来了。还是老问题,在我做的这套软件中,我只做了一个简单的时间控制:
unit loing;
type class:=formloing;
uses
.........
procedure timecontrol(sender;Tobject)'
var nowtime,time;Tdatetime;
nowtime;=now;
time;='2001-12-00 12:00:00';
if nowtime<=time then
beign
showmessage('时间已到期,相关事宜请与本公司联系!');
exit;
end;
现在的问题是:
我不会在注册表中写time?
但用户改变系统time时就又可以用了,各位大哥有更好的方法吗?小弟一定给分!
Poul 2001-10-18
  • 打赏
  • 举报
回复
stanely(暗黑) & liang_z(千山一刀之忍者神龟)的办法都不错啊。值得一用。
xingjiaren 2001-10-18
  • 打赏
  • 举报
回复
stanely(暗黑) 的建议可行,推荐采用 :)
liang_z 2001-10-18
  • 打赏
  • 举报
回复
你用服务器吗?
如果是Sql Server 则在服务的表上存个时间就可以了,
如果是单机的,则可以用个加密文件存放时间,付了钱就给
他换个文件,不用太复杂,随便异或两下就可以了,我想那
个桑那老板就搞不定了。
windindance 2001-10-04
  • 打赏
  • 举报
回复
在注册表里写时间不就可以了吗.
kuangning 2001-10-04
  • 打赏
  • 举报
回复
文件操作很简单呀
看一下帮助
cd_fsy2000 2001-10-04
  • 打赏
  • 举报
回复
to: wyb_star(孤星)老大,您说的方法我不会做,能详细点吗?
在系统目录中怎样加文件;每次启动怎样检查?马上给分
wyb_star 2001-10-04
  • 打赏
  • 举报
回复
最好不要在注册表中加判断,因为一恢复注册表就失效了,在系统目录中加文件比较好,每次启动检查一次,起个不起眼的名称,文件那么多,谁也不会注意!
加载更多回复(5)

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧