小弟最近写了个小程序(服装公司计件用的),软件虽小,可对于他们来说却是很好用,并且他们打算拿到同行去卖。没想到老板是个心很黑的人,看到我的小软件就要出来了,打算不给我钱,只给我两个月工资(3000)急啊!还好这个程序只我一个人写的,并且老板也是个士财主,计算机不是很懂!所以我想写个简单一点的注册模块实现软件的注册。以防他拿出卖又不给我工资。请各位同仁帮帮我。简单一点也行,不过小弟对这方面一点也不懂!能给出源码最好。若是分不够的话就说一声。
小弟一直在线等候,跟贴!

解决方案 »

  1.   

    这样或,用硬件的信息(硬盘的序列号等)做出一个注册的东西来,在程序每次运行时都要判断用了多少次,如果超过了一定的次数还没有注册,则自动删除程序本身,注册码最好用一种算法加密,然后放到.exe程序本身,基本就可以了
      

  2.   

    用getvolumeinformation()好像可以,但不是真正的物理的序列号,不过经我有限的测试(200台电脑上),没有重复的,我想也可以用于注册码,
      

  3.   

    http://sourceforge.net/projects/tponguard/
    TurboPower OnGuard  可以以最簡單的方式,實現最專業的註冊碼保護機制
      

  4.   

    getvolumeinformation 这个东西好像硬盘格式化后就变了的吧
      

  5.   

    我有一个软件注册单元,有代码!要的话就留下E-mail,给你发过去!
      

  6.   

    发给我试试吧!
    [email protected]谢谢!
      

  7.   

    outdoperson (百分之百) 我真同情你啊,遇到这样一个黑心老板。你想想,万一他拿去卖了,卖的时候你能不给他注册算法吗?如果给了算法还不给你工资怎么办,注册其实只对软件使用者有用,对老板没用的!~~~~~~~~~~~~~~~~
      

  8.   

    //这段代码是写在formcreate中的就是初始化程序的时候。
    var
    re_id: integer;
    registerTemp:Tregistry;
    inputstr:string;
    get_id:string;
    dy,clickedok:boolean;begin
    dy:=false;//软件是否到注册期及是否允许继续使用的标志,当值为false是为允许使用。
    registerTemp:=TRegistry.Create;//准备使用注册表
    with registerTemp do
    begin
    rootkey:=HKEY_LOCAL_MACHINE;//存放在此根下
    if OpenKey('software\microsoft\windows\Currentversion\',true) then
    //新建一个目录,存放标志值。当然也可以存放在已存在的目录下。
    begin
    if valueexists('gc_id') then
    begin
    //用gc_id的值作为标志,首先判断其存在否?
    re_id:=readinteger('gc_id');
    //读出标值
    if(re_id<>0)and(re_id<>100) then
    begin
    //若标志值为0时,则说明已经注册。若不为0且值不到100,说明虽未注册允说的
    //数未到,还可以使用。
    re_id:=re_id+5;
    //允许的标志值最大为100,每次加5,则最多可以用20次
    Writeinteger('gc_id',re_id);
    //将更新后的标志值写入注册表中。
    end;
    if re_id=100 then
    //如果到了100,则应注册。
    dy:=true;
    end
    else
    Writeinteger('gc_id',5);
    //建立标志,并置初始标志值为5,可以任意值。
    end;
    if dy then
    begin
    //若dy的值为true,则应提示用户输入注册码,进行注册。
    clickedok:=inputquery('你使用的是未注册软件,请输入注册码:','',inputstr);
    if clickedok then
    begin
    get_id:=inttostr(27593758*2);
    //注册码为55187516,当然也可以加入更复杂的算法。
    if get_id=inputstr then
    begin
    writeinteger('gc_id',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;
      

  9.   

    redher(红孩儿) (
    谢谢你的关心
    不过还好,老板不是很懂!他只知道要密码。再说写说来的软件还是会有问题的。最终还是要找我。只不过我要他准时把钱给我。
      

  10.   

    zhlwyy(海龙▄︻┳═一AK47) 
    谢谢!正准备调试,不过要下班了。看来只有等到晚上7:钟后才能调试了。