开发软件如何限制试用天数(100分)

  • 主题发起人 主题发起人 lidongshengly
  • 开始时间 开始时间
我觉得重安装系统与软件,下次再用一样有限制差不多。
 
1.控制一个表的时间不能向前调
2.判断这个表里第一条纪录与计算机时间差就行了
 
如果是ghost别人备份了.大不了在灰复过来.
有没有控制不让灰复的.如:ghost
 
procedure TForm1.FormCreate(Sender: TObject);
var
registerTemp : TRegistry;
curDate : TDateTime;
begin
registerTemp := TRegistry.Create;
with registerTempdo
begin
RootKey := HKEY_LOCAL_MACHINE;
//判断是否初次运行程序
if OpenKey('Software/MySoftware',True) then
begin
if ReadBool('Runned') then
//不是第一次运行
begin
curDate := Date;
if (curDate-ReadTime('LastRunTime'))>=ReadInteger('Duration') then
begin
//当前的系统时间超出了使用期限
ShowMessage('试用版已到期');
exit;
end
else
begin
DeleteKey('LastRunTime');
WriteTime('LastRunTime',Date);
end;
end
else
begin
//初次运行程序
DeleteKey('Runned');
WriteBool('Runned',True);
//设置试用期限30天
WriteInteger('Duration',30);
//写入当前运行时间
WriteTime('LastRunTime',Date);
end;
end
else
begin
ShowMessage('Fails!');
end;
CloseKey;
end;
end;
 
你们写的这些都不能防止用户更改系统时间而无限期的使用
 
大家都想想辦法嗎?
 
我没有做过,不过我的对注册表还算是可以的!
我的设计方法是:
向注册表中写入一个date类型的数据,是获得当前系统日期时间加上你要限制用户使用的天数!
然后每当系统运行时,就读取注册表项,如果当前时间大于注册表项中数据值的时间,那么就不让用户登录!
说的有点简略,不过上面的各位已经说的比较明确了!
 
我认为对注册表操作不是很好,象瑞星等杀毒工具可以阻止程序写入注册表,这样所做的注册信息不就白费了吗
 
多人接受答案了。
 
后退
顶部