
不要用GetVolumeInformation ,否则客户重装系统软件就不能用了。
比较推荐用硬盘序列号。具体你搜一下,代码很多的。
需要注意的是:有一些硬盘没有序列号的。这种情况下就需要给一个默认的
想必楼主正在用一个软件,不知道怎么免费注册?呵呵,每个软件提取的硬盘特征码不同,而注册码是根据提取的特征码和软件制作者自己的程序算法结合来计算注册码的。想要现成的,那么就去绿色软件站找破解版的吧。呵呵
就是说一个注册码只能在一个硬盘里使用!
其它方法也可以,只要一个注册码只能在一部机里是正确的,拿到另一部又要畭另一个注册码就行了
利用API中的“GetVolumeInformation”函数提取使用者机器的硬盘序列号为特征码,注册时提交此码,经过软件著作权人加以运算,给出注册码,最后软件使用人输入注册码完成整个注册过程(为使说明简单,本例中以特征码减101做为注册码)。
新建一模块文件
新建一模块文件,并将如下声明的语句和常量添加到Module1Bas模块中:
Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA"
(ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal
nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As
Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal
nFileSystemNameSize As Long) As Long
Global GetVal As Long
编程时需注意的是要将声明语句写在同一行中。
窗体设置
在Form1上添加2个文本框,Name属性分别设置为Text1、Text2;再添加1个按钮,Name属性设置为Command1。
添加代码
将如下程序代码添加到Form1的Form1_Load事件中:
Private Sub Form_Load()
Dim TempStr1 As String 256
Dim TempStr2 As String 256
Dim TempLon1 As Long
Dim TempLon2 As Long
………
‘读取是否注册的信息,如何控制这里不再说明
………
Call GetVolumeInformation("C:\", TempStr1, 256, GetVal, TempLon1, TempLon2, TempStr2, 256)
Text1Text = GetVal ‘提取本机C盘的序列号至文本框一
End Sub
将如下程序代码添加到Command1的Command1_Click事件中:
Private Sub Command1_Click()
If Text2 〈〉 CStr(GetVal) Then
MsgBox "注册码不正确,请认真检查输入是否正确。"
Else
MsgBox "你已经成功注册,请重新启动本软件。"
………
(将正确注册的信息写入,使软件功能以后不受限制。具体方法依个人爱好进行设置。)
………
End If
End Sub
至此,我们可以运行一下程序。你会发现我们已经简单地实现了利用硬盘序列号制作电子注册版软件的功能。
GetVolumnInformation获得的是硬盘的卷名称而不是序列号,如果硬盘格式化了那么用户就不能再用了,因为卷标改变了。
来源:(>
机器码指的是将硬件序列号经过一系列加密、散列形成的一串序列号。
概述
硬盘,CPU都有一个无法修改的识别码。网卡的MAC其实也算一种,但它是可以人为修改的。 软件为了防止盗版,采取了一定的保护措施。在用户注册的时候会根据用户软件所安装的计算机软硬件信息生成唯一的识别码,一般称作机器码,也叫序列号、认证码、注册申请码等。机器码一般用作软件能够唯一识别的机器,注册软件时会自动根据硬件配置产生一串序号,这串序号叫机器码,软件提供商一般根据用户所提供的机器码来产生唯一的注册码,这样所使用的软件就可能正常工作了。 机器码是由您的电脑硬件信息产生,不会改变,如果您格式化硬盘或重装系统则可能会改变。 如果中了病毒,则也可能会改变。
编辑本段什么是机器码
机器码是计算机的唯一编号,一般取自计算机硬件的序列号。我们软件的注册系统依赖于此机器码区分不同的计算机。由于机器码源自某些硬件,所以当您计算机的硬件改变时可能导致机器码改变,而这时我们的注册系统会认为是一台新的计算机,您只需要重新注册它,但重新注册可能出现“已超过最大授权数”的错误,这是因为老的硬件已被作为一台电脑注册的缘故,您只需要按提示申请撤销上一台就可以了。这是完全正常的,请不用担心,注册码不会失效,这种情况我们会保障注册码可用。 我们取的机器码是来自硬盘、主板或CPU,当这三种硬件改变时可能会致使机器码改变而需要重新注册,其它硬件改变则没有影响。其中最主要的是硬盘,一般情况下硬盘的改变都需要重新注册。主板和CPU只有极个别情况下才使用。
编辑本段什么时候需要机器码
一般情况下,您不需要使用也没有必要知道此机器码,因为所有的 *** 作都是自动完成的,没有必要知道它。只有在技术支持时,如果我们需要您提供机器码,这时您才能用到它。 即使在当您无法完成在线注册时,一般也不需要手工提供机器码,程序自动生成的邮件中就包括了这些信息,万一您需要手工书写申请注册、申请撤销、申请续订、同步续订期限 等邮件时才需要手工提供这些机器码信息。
可以从数据库层面上确保特征码不被错误修改。
首先并没有一个唯一的硬件特征码,而是每个部件都有自己独立的特征码,例如CPUID、硬盘ID,MAC等等。
所以加个内存条不会改变这些部件的特征码。但是如果某软件通过多个部件特征码整合后的串值来进行验证,那么增减硬件就可能导致不匹配了,所以要看具体的软件验证的是哪些ID。
硬盘的特征码常用来加密、共享软件注册。是硬盘的唯一标识,像你的身份z一样。另外一个概念硬盘序列号是随着格式化的过程建立的,可变的。这两个概念相近,有的文章中混淆,看的时候要结合上下文区分。
以上就是关于求助C语言 获取一段特征码使程序绑定电脑全部的内容,包括:求助C语言 获取一段特征码使程序绑定电脑、如何算硬盘特征码的注册码、如何利用硬盘卷序列号生成软件注册码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)