首页
社区
课程
招聘
[原创]菜鸟注册机编写基础教程(二)
发表于: 2006-6-14 16:15 20229

[原创]菜鸟注册机编写基础教程(二)

2006-6-14 16:15
20229

二、入门篇

    上篇讲了基础知识,这篇开始动手实际操作了。我希望大家一定要动手不要光看文章(这点非常重要,你会发现动起手来上手更快)。在这之前,先装好这几种语言。为了方便可以装精简版(6M的VB6.0精简版,50M的DELPHI 2006 精简版,13M的VC6.0精简版,或者直接装个VS6.0),本节将以一个简单的实例了解各种语言的工程建立方法并编译出第一个注册机程序。(源码看附件)
    已知某一软件的算法过程是:注册码=用户名的累加值,就这么简单先,我们通过编写算法注册机去了解一下各种语言的结构特点,尽量做到每一行都进行注释。
一、        VB6.0
1、        启动软件,新建一个标准EXE工程,拉出两个TextBox和一个CommandButton,将两个TextBox中的Text文本内容去掉,将CommandButton的CAPTION改为确定,双击确定按钮来到代码区。
2、        写入代码:
Private Sub Command1_Click()            ' 按钮的响应代码
Dim i As Integer                        ' 定义i为整形变量
For i = 1 To Len(Text1.Text)        ' i等于1到文本框1的内容(用户名)的长度
Sum = Sum + Asc(Mid(Text1.Text, i, 1))     ' 逐个取用户名的ASCII码累加
Next I                                 ' 取下一位用户名
Text2.Text = Sum                        ' 文本框2等于最终计算结果
End Sub
3、        就这么简单,按F5测试一下,成功。
4、        按菜单:文件-编译工程,保存为一个可执行文件,这就是你的注册机了。
5、        “附件中的注册机是居中的,而且有关于和退出按钮,任务栏也有显示工程图标的,我这里怎么没有?”要想增加关于和退出内容,你可以再建立两个按钮,并在菜单中按“工程”-添加FORM窗口,新窗口中新建一个LABEL,写入关于的内容,然后给关于按钮添加代码:Form2.Show,同样给退出按钮添加代码Unload Me即可。关于居中和任务栏设置都是在Form1的属性里,其中BorderStyle设置窗口显示模式,StartupPostion设置是否居中,ShowInTaskbar设置是否在任务栏显示工程图标。
6、        工程文件为vbp文件。

二、        DELPHI
1、        启动DELPHI 10 LITE,新建一VCL窗口工程,拉出两个TEdit和一个Tbutton,去掉两个Tedit中的text内容,改Tbutton的Caption为确定,双击按钮带代码区,写入代码:
procedure TForm1.Button1Click(Sender: TObject);         //按钮响应代码
var                                 //变量赋值
    i,sum:integer;                     //定义I,SUM为整形变量
begin                                //代码开始
  sum:=0;                            //初始化总和SUM的值
   for i:=0 to length(edit1.text)-1 do         // I从0到用户名的长度
    begin                            //循环开始
     sum:=sum+ord(edit1.text[i]);        //逐个取用户名的ASCII累加
    end;                             //循环结束
  edit2.text:=inttostr(sum);              //TEDIT2的内容为计算结果
end;
2、        也很简单,可以按F9进行测试,成功。
3、        按菜单:PROJECT-COMPILE PROJECT或者CTRL+F9编译后文件目录里便多出个可执行文件,这就是你的注册机。
4、        同样,想增加关于和退出的内容的话也增加两个按钮,并在菜单中选FILE-NEW-FORM新增关于窗口,写入关于的内容,并双击关于按钮,写入代码Form2.Show。退出的话很简单,双击退出按钮,增加代码:Close。
5、        居中和窗体模式将FORM1属性中的BOARDSTYLE设置为BSSIZETOOLWIN和POSITION中设置为POSCREENCENTER。
6、        工程文件为dpr文件。

三、        VC6.0,由于讲的都是GUI界面注册机,所以这里以MFC为实例。
1、        打开VC6.0,新建一MFC的EXE工程,应用程序类型选基本对话框,其它的默认设置。
2、        去掉原来窗口上的那些控件,拉出两个Edit Box 和一个Button。在控件上右击选建立类向导,Member Variables中增加成员名称EDIT1为m_Edit1,EDIT2为m_Edit2,Message Maps中为BUTTON1 增加BN_CLICKED成员功能名称。全部设置好后在窗口中双击按钮来到按钮响应代码区,写入代码:
void CMy1Dlg::OnButton1()          //按钮响应
{
  UpdateData(true);                 //用于将屏幕上控件中的数据交换到变量中
  long i,n=0;                       //定义变量i.,n 为长整型,并初始化n
  char cName[20],SN[20];            //定义20个元素的用户名和注册码数组
  strcpy(cName,m_edit1);
  for (i=0;i<m_edit1.GetLength ();i++)  n += cName[i];   //用户名累加计为n
  _itoa(n,SN,10);                   //将长整型n转化为字串型SN
  m_edit2 = SN;                   //EDIT2的内容为计算结果
  UpdateData(false);               //将数据在屏幕中对应控件中显示出来
}
3、        稍微复杂了点,但是简练。CTRL+F5测试,通过。看文件目录下Debug文件夹中的可执行文件,那就是你的注册机。
4、        同样想增加关于和退出的内容,分别放上关于按钮和退出按钮,退出按钮直接写入代码CDialog::OnCancel()即可,关于可以用新增对话框形式,菜单“INSERT”-NEWFORM,名称填入ABOUT,在ABOUT窗口中添加关于的内容。调用时双击关于按钮写入代码:
about aboutDlg;             //对话框名称
aboutDlg.DoModal();        //显示模式对话框
5、        对话框默认居中,不用设置了,工程文件为dsw文件。

    这节内容使我们对语言的结构有了初步的了解,同时我们了解了几个最常用的函数,如VB中的LEN()、ASC(),MID(),DELPHI中的LENGTH()、ORD()、INTTOSTR(),VC中的STRCPY()、GETLENGTH(),ITOA()、UPDATEDATA()等,另外我们可以对他们的编译速度进行对比,并对编译后的可执行文件进行对比,由于VB没有带运行库,所以明显的小了很多(NT系统都有自带),从编译速度看,DELPHI比其他的明显的慢了很多。功能的强弱现在还看不出来,这节内容就到这里。

【版权声明】:  本文由langxang原创于看雪论坛,转载请注明作者并保持文章的完整, 谢谢!


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (24)
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
2
WORD里漂亮的排版贴在这里居然变成这个样子。
2006-6-14 16:19
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
13M的VC6.0精简版那里有?
2006-6-14 16:57
0
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
4
有需要的话我传个到FTP吧,不过有些库文件还是要添进去,用的不爽。
2006-6-14 17:06
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
传上来看看吧。
2006-6-14 17:11
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
谢谢,已下载。
2006-6-14 19:45
0
雪    币: 175
活跃值: (2621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
希望能多点这方面的教程。
2006-6-14 20:20
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
支持!!希望写个数值转换类型更多的算法的教程,我就是对数值转换弄不清,在c语言里面,如果将字符参与运算,就是将它对应的ascii码参与运算,那对应
的16进制左移一位,是不就是 char c='a',c=c*16;?
2006-6-14 20:28
0
雪    币: 333
活跃值: (40)
能力值: ( LV9,RANK:730 )
在线值:
发帖
回帖
粉丝
9
收藏,期待下一篇。
2006-6-14 22:57
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
下一篇什么时候出来啊?
2006-6-14 23:31
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
11
可以当成语言速成教程
支持!
2006-6-14 23:56
0
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
太棒了.学习了~~
2006-6-15 00:44
0
雪    币: 9899
活跃值: (2301)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
好东西,继续支持中。
2006-6-15 09:22
0
雪    币: 50
活跃值: (145)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
14
看见的有点晚
2006-6-15 13:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
谢谢楼主的材料
2006-6-16 09:59
0
雪    币: 200
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
收藏慢慢研究!
2008-11-15 13:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
支持你啊,谢谢你了
2009-4-20 01:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
好东东。好东东。
2009-4-30 22:54
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
好东西,支持。。。。
2010-5-24 23:14
0
雪    币: 30
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
为什么不能下载啊 如何得KX啊
2010-6-25 22:42
0
雪    币: 427
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
学学写注册机
2010-6-25 22:46
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
强烈支持楼主
2010-8-2 22:34
0
雪    币: 33
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
感谢提供这样的教程给我们学习!!
2011-8-12 12:56
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
谢谢,下载学习了!
2012-6-3 06:24
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
好东西,很受教
2012-6-6 17:09
0
游客
登录 | 注册 方可回帖
返回
//