精易论坛
标题:
最稳定的取系统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