通过易语言支持库 、VB、CMD,汇编等方法获取CPU的序列号,从而转化为特征字,方便我们硬件的绑定注册使用。

511遇见(www.511yj.com)

511遇见易语言软件本地注册验证

 易语言有一个数据类型就是CPU,我们可以直接调用它的序列号

511遇见(www.511yj.com)

.版本 2
.支持库 eAPI

.局部变量 CPU信息, CPU信息

取CPU信息 (CPU信息)
编辑框1.内容 = CPU信息.序列号

使用CMD来获取CPU序列号

511遇见(www.511yj.com)

.版本 2

.子程序 CPU_取序列号_cmd, 文本型, 公开, 使用CMD来获取CPU序列号
.局部变量 a, 文本型

a = 删全部空 (取DOS返回 (“wmic CPU get ProcessorID”))
a = 子文本替换 (a, #换行符, “#”, , , 真)
a = 文本_取出中间文本 (a, “#”, “#”, , )
返回 (a)

易语言执行 VBScript调用

511遇见(www.511yj.com)

.版本 2

.子程序 VB_取硬件信息, 文本型, 公开
.参数 类型, 文本型, 可空, 默认 #磁盘序列号
.局部变量 VBScript, 对象

.如果 (是否为空 (类型))
    类型 = #磁盘序列号
.否则
    .如果真 (类型 ≠ #MAC 且 类型 ≠ #CPUID 且 类型 ≠ #磁盘序列号 且 类型 ≠ #声卡 且 类型 ≠ #显卡 且 类型 ≠ #BIOS)
        类型 = #磁盘序列号
    .如果真结束

.如果结束

VBScript.创建 (“ScriptControl”, )
VBScript.写属性 (“Language”, “VBScript”)
VBScript.数值方法 (“ExecuteStatement”, #GetTrait)
返回 (删首尾空 (VBScript.通用方法 (“Run”, “GetTrait”, 类型).取文本 ()))

 系统使用汇编方式获取CPUID

511遇见(www.511yj.com)

.版本 2

.子程序 CPU_取序列号_汇编, 文本型, 公开, 系统使用汇编方式获取CPUID
.局部变量 s1, 整数型, , , -4
.局部变量 s2, 整数型, , , -8

置入代码 ({ 184, 1, 0, 0, 0 })  ' mov eax,01h
置入代码 ({ 49, 201 })  ' xor ecx,ecx
置入代码 ({ 49, 210 })  ' xor edx,edx
置入代码 ({ 15, 162 })  ' cpuid
置入代码 ({ 137, 85, 252 })  ' mov dword [ebp-4],edx
置入代码 ({ 137, 69, 248 })  ' mov dword [ebp-8],eax
返回 (取八位十六进制 (s1) + 取八位十六进制 (s2))

调用源码:

.版本 2
.支持库 eAPI
.支持库 spec

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击, , , 易-CPU序列号
.局部变量 CPU信息, CPU信息

取CPU信息 (CPU信息)
编辑框1.内容 = CPU信息.序列号

.子程序 _按钮2_被单击, , , CMD_CPU序列号

编辑框2.内容 = CPU_取序列号_cmd ()

.子程序 _按钮3_被单击, , , VB_CPU序列号

编辑框3.内容 = CPU_取序列号_VB ()

.子程序 _按钮4_被单击, , , 汇编_CPU序列号

编辑框4.内容 = CPU_取序列号_汇编 ()

.子程序 _按钮5_被单击, , , 综合—CPU特征字

编辑框5.内容 = 到文本 (CPU_取特征所有 ())
调试输出 (取文本长度 (编辑框5.内容))

参考源码:1、511遇见易语言软件注册本地验证-2-取CPU序列号特征字

                 2、511遇见易语言软件注册教程

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐