form.create初始化时间
form1.close时候
把用户的使用时间写进注册表

解决方案 »

  1.   

    程序启动后。每过一秒,写register使用时间+1秒。
    当然启动时还要取出数据/60/60,如大干10的话就退出。
      

  2.   

    转载:参考一下!!!给发哦。我都没分了
    把应用软件加上30天的试用期 
           出自:senders
    --------------------------------------------------------------------------------
     
    unit regApp; interface uses Windows,SysUtils,Registry,forms, Dialogs; type 
    Tlogin = class 
    private 
    public 
    constructor Create; virtual; 
    procedure CheckLogin; 
    end; 
    implementation constructor Tlogin.Create; 
    begin 
    inherited Create; 
    end; procedure Tlogin.CheckLogin; 
    var 
    Reg_id: TDateTime; 
    RegisterTemp: TRegistry; 
    InputStr, Get_id: string; 
    Reg_tag, ClickDok: Boolean; 
    Allow: Integer; 
    begin 
    Allow := 30; //试用期为30天 
    Reg_tag := False; //软件是否到注册期 
    registerTemp := TRegistry.Create; //准备使用注册表 
    with registerTemp do 
    begin 
    RootKey := HKEY_LOCAL_MACHINE; //存放 
    if OpenKey(''Software\Microsoft\Windows\CurrentSowft\tag'', True) then // 建一目录,存放标志值 
    begin 
    if ValueExists(''DateTag'') then begin //用DateTag的值作为标志 
    Reg_id := ReadDate(''DateTag''); //读出标志值 
    if (Reg_id <> 0) and (Now - Reg_id > Allow) then //允许使用的时间到 
    Reg_tag := True; 
    end 
    else 
    WriteDateTime(''DateTag'', Now); //建立标志,并置初始标志值。 
    end; 
    if Reg_tag then begin //要求用户输入注册码 
    ClickDok := InputQuery(''您使用的是非注册软件,请输入注册码:'', '' '', inputstr); 
    if ClickDok then begin 
    Get_id := IntToStr(2222); //注册码2 
    if Get_id = InputStr then begin 
    WriteDateTime(''DateTag'', 0); //将标志值置为0,即已注册。 
    CloseKey; 
    Free; 
    end 
    else begin //若输入的注册码错误 
    Application.MessageBox(''注册码错误!请与作者联系!'', ''警告框'', mb_ok); 
    CloseKey; 
    Free; 
    Application.Terminate; 
    end; 
    end 
    else begin //若用户不输入注册码 
    Application.MessageBox(''请与作者联系,使用注册软件!'', ''警告框'', mb_ok); 
    CloseKey; 
    Free; 
    Application.Terminate; 
    end; 
    end; 
    end; 
    end; end.