首页
社区
课程
招聘
放个很简单的注册机模板
发表于: 2005-12-7 15:19 8016

放个很简单的注册机模板

2005-12-7 15:19
8016

上次看到 4nil 兄弟放了个MFC的注册机模板,记得我以前没事的时候也用SDK方式写了一个玩的,很简单,高手就不要看了。里面用了一张CCG的LOGO,声明一下,我不是CCG的,只是借用一下他们的LOGO,如你想用这个模板做注册机发布的话,请用别的图片替换CCG的LOGO!要是不用图片的话,编译出来后再用PE工具优化一下只有几KB。代码如下:

//////////////////////////////////////////////////////////////////////////////////////////////////
//预处理

#include "windows.h"
#include "stdio.h"
#include "string.h"
#include "resource.h"

//使用了下面的预处理,编译连接时必须是 Release 方式,否则不能通过

//自定义程序入口,如果要优化,推荐使用这个

#pragma comment(linker, "/ENTRY:EntryPoint")

/////////////////////////////////////////////////////////////////////////////////////////////////
//全局变量

HINSTANCE hInst;        //应用程序进程句柄,一般程序中经常用到此变量,故使用全局变量
HWND hwnd;                //主窗口句柄,一般程序中经常用到此变量,故使用全局变量

/////////////////////////////////////////////////////////////////////////////////////////////////
//函数声明

LRESULT CALLBACK KeyGen(HWND, UINT, WPARAM, LPARAM);

/////////////////////////////////////////////////////////////////////////////////////////////////
//入口函数
//使用我们自己的入口函数来优化文件大小,而不用连接器默认提供的一大堆程序初始化操作的代码

void EntryPoint()
{
        hInst = GetModuleHandle(NULL);
        ExitProcess(DialogBoxParam((HINSTANCE)hInst, MAKEINTRESOURCE(IDD_KEYGEN),
                0, (DLGPROC)KeyGen, IDD_KEYGEN));
        //ExitProcess(WinMain(GetModuleHandle(NULL), NULL, GetCommandLine(), SW_SHOWNORMAL));//一般程序的入口函数
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//主函数

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
        DialogBox(hInst,MAKEINTRESOURCE( IDD_KEYGEN ),NULL,(DLGPROC) KeyGen);
        return (FALSE);
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//注册机对话框主函数

LRESULT CALLBACK KeyGen(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
       
        char username[255] = "", serial[255] = "";                //定义用户名和注册码
        char *sn;                                                //用于临时存放生成的注册码
        int namelength;                                        //姓名长度

        switch(message)
        {
        case WM_COMMAND:
                switch(LOWORD (wParam))
                {
                case WM_INITDIALOG:
                        LoadIcon( hInst , MAKEINTRESOURCE(IDI_ICON));        //设置程序图标
                        LoadBitmap( hInst , MAKEINTRESOURCE(IDB_CCG));        //设置显示的位图
                        break;

                case IDGEN:                                                //处理输入的用户名
                        GetDlgItemText( hDlg, IDC_NAME, username, 255);
                        namelength = strlen (username);
                        if (namelength < 1)                                //未输入姓名时提示
                        {
                                SetDlgItemText( hDlg , IDC_NAME,TEXT("姓名不能为空!"));
                                break;
                        }
                        //在此放置你的代码
                        sn = serial;
                        SetDlgItemText( hDlg , IDC_SN , sn);                        //把计算后的注册码输出
                break;

                case IDABOUT:
                        {
                        MessageBox( NULL, TEXT("********注册机模板********\n\n********cao_cong 制作********\n******2005年1月26日*****"),
                                TEXT("关于"),MB_OK);
                        return 0;
                        }
                break;

                case IDEXIT:
                        EndDialog ( hDlg , IDEXIT);
                break;
                }

                default : return (FALSE);
        }
        return (TRUE);
}

资源(部分):
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_KEYGEN DIALOG DISCARDABLE  0, 0, 207, 129
STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CAPTION |
    WS_SYSMENU
CAPTION "KeyGen"
FONT 9, "宋体"
BEGIN
    EDITTEXT        IDC_NAME,45,57,154,16,ES_AUTOHSCROLL
    DEFPUSHBUTTON   "生成注册码",IDGEN,15,105,50,18
    EDITTEXT        IDC_SN,45,83,154,16,ES_AUTOHSCROLL
    PUSHBUTTON      "退    出",IDEXIT,147,105,50,18
    PUSHBUTTON      "关    于",IDABOUT,81,105,50,18
    CTEXT           "姓  名:",IDC_STATIC,4,57,34,16,SS_CENTERIMAGE
    CTEXT           "注册码:",IDC_STATIC,4,83,34,16,SS_CENTERIMAGE
    CONTROL         105,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,0,0,
                    207,57
END

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON                ICON    DISCARDABLE     "KeyGen.ico"

/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

IDB_CCG                 BITMAP  DISCARDABLE     "CCG.bmp"
#endif    // Chinese (P.R.C.) resources
/////////////////////////////////////////////////////////////////////////////

源码作为附件发上来:
附件:key.rar


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (9)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先顶了再说
2005-12-7 15:26
0
雪    币: 333
活跃值: (116)
能力值: ( LV9,RANK:570 )
在线值:
发帖
回帖
粉丝
3
嘿嘿,CCDebuger兄的仿CCG,我来个用Delphi+KOL的仿ZWT的!

***************************上面的代码省略***********************************

//定义所用到的网址
  MyWebPage:string='http://cztool.ys168.com/';
//定义 注册机显示的标题
  Caption:string = 'Keymaker for MyBDnote Products';
//定义  注册机的编写者
  Author:string = 'aCaFeeL';
//定义  注册机的发布日期
  Date:string = '2003--07-06';
//定义 注册机启动后的默认注册名
  Name:string= '在此输入你的注册名称...';

//**************************************************************************
//****** 注册名->注册码 换算函数 ******  //某软件 V1.03 的注册算法
//**************************************************************************
function KeyGen(RegName: String): String;   //定义函数
var      //定义 函数所用到的变量
  textP:string;
  i:integer;
begin    //定义 注册名->注册码的 具体算法
{}//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>//{}
  textP:='Th[is33Is20My71Sh(a)re24Wa]re';       //密码对照表
  for i:=1 to Length(RegName) do
    Result:=Result + textP[( ( Ord(RegName[i]) + 7904 ) mod 27 ) + 1];
{}//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>//{}
end;

//******************************************************************************
//******************************************************************************
//开始计算注册码
procedure TForm1.EditBoxNameChange(Sender: PObj);
begin
  if Form1.EditBoxName.Text  = '在此输入你的注册名称...'
    then Form1.EditBoxCode.Text := '你将得到正确的注册码...'
    else Form1.EditBoxCode.Text  := KeyGen(Form1.EditBoxName.Text); //显示正确注册码
end;

procedure TForm1.BitBtn1Click(Sender: PObj);
begin
  //显示关于本软件对话框
  ShowMessage(PChar(Caption             + #10#13 + #10#13 +
                    'Made By ' + Author + #10#13 + #10#13 +
                    MyWebPage           + #10#13 +
                    Date));
  //连接自己的主页
  ShellExecute( 0, 'open',PChar(MyWebPage), nil, nil, SW_SHOW );
end;

//**************************************************************************
//窗体启动时的代码
//**************************************************************************
procedure TForm1.KOLFormMainShow(Sender: PObj);
begin
  //定义 注册机显示的标题
  Form.Caption := Caption;
  Form1.EditBoxName.Text := Name;
  Form1.EditBoxName.Focused := True; //让光标聚焦在EditBoxName控件中
  Form1.EditBoxName.SelectAll;       //将注册名全部选定
end;

//程序退出
procedure TForm1.BitBtn2Click(Sender: PObj);
begin
  Form.Close;
end;
***************************下面的代码省略***********************************


附件:zwtKeyGen.rar
2005-12-7 20:12
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
4
干吗要模仿呢?都是人家组织专有的...
2005-12-8 11:52
0
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
5
最初由 prince 发布
干吗要模仿呢?都是人家组织专有的...

呵呵,不是模仿,只是当时没找到什么好的图片,顺便用一下。
2005-12-8 14:58
0
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
谁来仿个TMG的吧。。。
2005-12-8 15:47
0
雪    币: 234
活跃值: (370)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
7
最初由 +dEMON 发布
谁来仿个TMG的吧。。。

2005-12-8 16:02
0
雪    币: 298
活跃值: (445)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
8
最初由 +dEMON 发布
谁来仿个TMG的吧。。。


谁来个仿Eclipse的??
2005-12-8 18:29
0
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
最初由 Immlep 发布


谁来个仿Eclipse的??


Eclipse的很COOL吗?
我觉得TMG的比较COOL...
2005-12-8 20:05
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢,找这个很久了。原来是自己不会找。

顺便请问CCDebuger大哥,我删掉logo还有20k, 还需要怎么设置?
您有空再回答吧。
2006-2-18 13:01
0
游客
登录 | 注册 方可回帖
返回
//