精易论坛

标题: 最稳定的取系统uuid方法 [打印本页]

作者: a5774289    时间: 昨天 17:28
标题: 最稳定的取系统uuid方法
.版本 2

.子程序 取机器码bp, 文本型, 公开
.局部变量 size, 整数型
.局部变量 data, 字节集
.局部变量 i, 整数型
.局部变量 Length, 整数型
.局部变量 uuid, 文本型
.局部变量 between, 字节集
.局部变量 time_low, 整数型
.局部变量 n, 整数型
.局部变量 withlow, 字节集




' 备注:取主板部分参考论坛帖子,稍微修改

' wmic path Win32_ComputerSystemProduct get uuid /value 与另一种模式效果一致

' // no 取主板uuid

size = GetSystemFirmwareTable (1381190978, 0, data, 0)
data = 取空白字节集 (size)
.如果真 (size < 1)
    返回 (“”)
.如果真结束
GetSystemFirmwareTable (1381190978, 0, data, size)
.如果真 (size < 1)
    返回 (“”)
.如果真结束
i = 9  ' 前面8个字节忽略,储存其他信息
.判断循环首 (真)
    ' type 类型 1 系统信息

    .如果真 (data <i> = 1)
        跳出循环 ()
    .如果真结束

    Length = data [i + 1]
    i = i + Length
    ' 调试输出 (编码_utf8到gb2312 (指针到文本 (buffer + i)))
    ' 长度信息后为字符串 找到字符串信息结束标记 就是下一个type 结构的起始位置
    .判断循环首 (data <i> ≠ 0 或 data [i + 1] ≠ 0)
        i = i + 1
    .判断循环尾 ()
    i = i + 2
.判断循环尾 ()
i = i + 8
time_low = 取字节集数据 (data, #整数型, i)

uuid = 进制_十到十六 (time_low, 真)
' 中间部分需要交换下
between = 取字节集中间 (data, i, 4)
' 第二部分 = 字节集_交换 (第二部分)
withlow = between
.计次循环首 (4 ÷ 2, n)
    withlow [n × 2 - 1] = between [n × 2]
    withlow [n × 2] = between [n × 2 - 1]
.计次循环尾 ()
between = withlow

.计次循环首 (4, n)  ' 中间四位
    uuid = uuid + 进制_十到十六 (between [n], )  ' 直接用精益模块就行
.计次循环尾 ()
i = i + 4
.计次循环首 (8, )  ' 最后八位
    uuid = uuid + 进制_十到十六 (data <i>, )
    i = i + 1
.计次循环尾 ()



' // no 取主板型号

uuid = uuid + 取文本注册项 (4, “HARDWARE\DESCRIPTION\System\BIOS\BaseBoardProduct”, )


' // no 生成机器码
uuid = 校验_取md5_文本 (uuid, , , )




返回 (uuid)

小七游戏登录软件



作者: pipicool    时间: 昨天 18:29
学习一下
作者: 青春的思念    时间: 昨天 19:38
wmic不行的 别用wmic,新的系统已经默认关闭了 用这个取不是最优解
作者: wh1234567    时间: 18 小时前
感谢分享
作者: 豆豆灰常开心    时间: 11 小时前
感谢您对论坛的支持!
作者: 查过    时间: 11 小时前
感谢分享,很给力!~
作者: tonc    时间: 11 小时前
互相讨论,共同进步,知识共享,大家一起!
作者: kyo9766    时间: 9 小时前
简单实用,感谢分享
作者: 张升    时间: 8 小时前
感谢分享,很给力!~
作者: 胖子葛格    时间: 7 小时前
感谢大神分享~!
作者: 吃干饭的锅    时间: 5 小时前
感谢分享支持
作者: 神奇的哆啦A梦    时间: 2 小时前
         感谢分享,很给力!~
作者: 一指温柔    时间: 半小时前
支持开源~!感谢分享




欢迎光临 精易论坛 (https://bbs.125.la/) Powered by Discuz! X3.4