如何能限制别的一个程序的使用时间呢,有什么好办法没有?那个程序没有源代码,
解决方案 »
- 如何在win2003系统中获取采用raid 1方式的硬盘序列号,大侠帮忙啊~
- clientdataset 三层如何传中文参数?
- update语句语法错误。请给改下吧。不知哪里错了
- 经典的国产软件.关于图形控件这方面的可以研究一下。
- 关于FastReport的动态控制的问题。
- 求助关于SERVICE_TABLE_ENTRY结构
- 怎樣禁止dbgrid按向下鍵自動增加一行的功能
- 关于图片的问题。回答有分!
- 在showmessage('我要显示的字符') 中,如何把Edit1的内容显示在'我要显示的字符'处?
- 字符和Ascii之间的转换用什末函数?谢谢
- ActiveX相关(在线等待。。。。。。。。。。)
- 程序中的 {$ I+} 之类的东西是什么意思?
interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Registry, Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
var
registerTemp : TRegistry;
curDate : TDateTime;
begin
registerTemp := TRegistry.Create;
with registerTemp do
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;end.