TRegistry *Reg = new TRegistry;
Integer flag; //全局变量
TDate first ,last,now;
try {
Reg->RootKey = HKEY_LOCAL_MACHINE;
//如果没有运行过写入注册表运行情况
if (!Reg->KeyExists("SYSTEM\\CurrentControlSet\\Services\\Winsock\\myset"))
{
Reg->OpenKey("SYSTEM\\CurrentControlSet\\Services\\Winsock\\myset",true) ;
//使用写到注册表
Reg->WriteDate("FirstAccess",Date());
Reg->WriteDate("LastAccess",Date());
Reg->WriteInteger("Flag",0); //过期标志0不过期
Reg->CloseKey();
//ShowMessage("保存成功11");
}
更多代码参见
http://www.nzw.net.cn/www/cdsoft.nsf/topics?openform&forum=5&start=1&count=20&page=1
哪位能人把翻译成DELPHI?
TRegistry *Reg = new TRegistry;
Integer flag; //全局变量
TDate first ,last,now;
try {
Reg->RootKey = HKEY_LOCAL_MACHINE;
//如果没有运行过写入注册表运行情况
if (!Reg->KeyExists("SYSTEM\\CurrentControlSet\\Services\\Winsock\\myset"))
{
Reg->OpenKey("SYSTEM\\CurrentControlSet\\Services\\Winsock\\myset",true) ;
//使用写到注册表
Reg->WriteDate("FirstAccess",Date());
Reg->WriteDate("LastAccess",Date());
Reg->WriteInteger("Flag",0); //过期标志0不过期
Reg->CloseKey();
//ShowMessage("保存成功11");
}else //不是第一次运行,打开注册表取出运行情况,并写入当前运行时间
{
Reg->OpenKey("SYSTEM\\CurrentControlSet\\Services\\Winsock\\myset",false) ;
first = Reg->ReadDate("FirstAccess");
last = Reg->ReadDate("LastAccess");
flag = Reg->ReadInteger("Flag");
Reg->WriteDate("LastAccess",Date());
//ShowMessage("取值成功") ;
//根据使用情况开始动作 /////////////////////////////////////
now=Date(); //取今天日期
if(now.Val-first.Val >10) //限制安装后试用10天
{
Application->MessageBox("OA秘书系统试用到期!\n将要关闭程序...","提示",MB_OK);
Reg->WriteInteger("Flag",1); // 1表示到期
Reg->CloseKey();
delete Reg;
Application->Terminate();
return;
}
if(flag==1)
{
Application->MessageBox("OA秘书系统试用到期!!\n程序将关闭...","提示",MB_OK);
Reg->CloseKey();
delete Reg;
Application->Terminate();
return ;
}
}
}
catch(...)
{
delete Reg;
Reg = NULL;
ShowMessage("版本控制注册失败!");
return;
}
delete Reg;
Reg = NULL;
Reg:TRegistry;
flag:integer;
first ,last,now:TDate;
begin
Reg:=TRegistry.Create;
try
begin
Reg.RootKey:= HKEY_LOCAL_MACHINE;
//如果没有运行过写入注册表运行情况
if (not Reg.KeyExists('SYSTEM\\CurrentControlSet\\Services\\Winsock\\myset')) then
begin
Reg.OpenKey('SYSTEM\\CurrentControlSet\\Services\\Winsock\\myset',true);
//使用写到注册表
Reg.WriteDate('FirstAccess',Date());
Reg.WriteDate('LastAccess',Date());
Reg.WriteInteger('Flag',0); //过期标志0不过期
Reg.CloseKey();
//ShowMessage('保存成功11');
end
else //不是第一次运行,打开注册表取出运行情况,并写入当前运行时间
begin
Reg.OpenKey('SYSTEM\\CurrentControlSet\\Services\\Winsock\\myset',false) ;
first := Reg.ReadDate('FirstAccess');
last := Reg.ReadDate('LastAccess');
flag := Reg.ReadInteger('Flag');
Reg.WriteDate('LastAccess',Date());
//ShowMessage("取值成功") ;
//根据使用情况开始动作 /////////////////////////////////////
now:=Date(); //取今天日期
if(now-first>10) then//限制安装后试用10天
begin
Application.MessageBox('OA秘书系统试用到期!\n将要关闭程序...','提示',MB_OK);
Reg.WriteInteger('Flag',1); // 1表示到期
Reg.CloseKey();
Reg.Free;
Application.Terminate();
end;
if(flag=1) then
begin
Application.MessageBox('OA秘书系统试用到期!!\n程序将关闭...','提示',MB_OK);
Reg.CloseKey();
FreeAndNil(Reg);
Application.Terminate();
end;
end;
end;
except
begin
FreeAndNil(Reg);
ShowMessage('版本控制注册失败!');
end;
FreeAndNil(Reg);
end;
end;