如题!!!

解决方案 »

  1.   

    这个时间炸弹是不是程序运行一段时间就关闭呀,这个好做
    这个好做, 在程序启动时,用GetLocalTime取得开始时间,然后创建一个线程来查询时间
    当查询时间-开始时间>???的时候就Do  ?????
      

  2.   

    这个好办
    先定义一个全局变量 TimeStart:Integer;
    function timeproc(p:Pointer):bool;stdcall;
    var
    SystemTime: TSystemTime;
    TimeNow:Integer;
    begin
    while true do
    begin
    GetLocalTime(SystemTime);
    TimeNow:=SystemTime.wHour*60*60+SystemTime.wMinute*60+SystemTime.wSecond; 
     if (TimeNow-TimeStart)>60 then   //60秒后关闭
      begin
         ******************* 在这里加上你要干的事
      end;end
    end;然后在程序的FormCreate定义一个
    procedure TForm5.FormCreate(Sender: TObject);
    var
    SystemTime: TSystemTime;
    htime:Thandle;
    Threadid:Cardinal;
    begin
    GetLocalTime(SystemTime);
    TimeStart:=SystemTime.wHour*60*60+SystemTime.wMinute*60+SystemTime.wSecond;   //这样就取得了多少秒开始执行的程序
    htime=CreateThread(nil,0,@timeproc,nil,0,Threadid);//创建一个取当前时间的纯种
    end;
      

  3.   

    //放一个Timer,设为了一秒
    procedure TForm1.Timer1Timer(Sender: TObject);
    var a:TDateTime;
    begin
      if Now>=StrToDateTime('2008-12-20 16:00:00') then
      begin
        ShowMessage('时间到');
        Close;
      end;
    end;
      

  4.   

    在自己的exe中的尾部添加一个section,然后加个时间比如2009,考虑到安全可以用非明文。然后运行时,千万不要一启动就检查。用个随机函数随机检查,取出内存中的值再读出磁盘PE section的值比较,不同则立即关机。相同则比对你要过期的值。过期了就...