注册 登录
编程论坛 VFP论坛

读取主板序列号

zhoud_j 发布于 2023-01-13 16:54, 794 次点击
请问一下各位有没有读取主板序列号的示例。
8 回复
#2
sam_jiang2023-01-14 19:07
昨天那个myfll里就有现成的。

Set Library To myFll

?"第一块硬盘序列号为:"+GetDiskSerial()

?"第二块硬盘序列号为:"+GetDiskSerial(2)

Set Library To

#3
cssnet2023-01-14 21:29
楼主问的是主板。
硬盘恐怕不作数。
一来,硬盘远比主板、CPU更容易坏;二来,倘若客户随便更换一块硬盘,硬件绑定的注册码随即失效,那就……恐怕有点儿太过“奸商”吧?
估计微软注册码的硬件绑定,也是验证主板+CPU吧——这一组算是核心硬件,是“质变”;别的硬件只能算边脚料,是“量变”,不应作数。

#4
sam_jiang2023-01-14 21:44
回复 3楼 cssnet
哈哈,没看清,不好意思。
#5
sam_jiang2023-01-14 21:46
网上看到一段vb代码的,不知道对你有没有帮助?
Function GetMainboardSerialNumber()As String
On Error Resume Next
Dim strComputer
Dim objWMIService
Dim objItem
Dim strOption
Dim colItems
GetMainboardSerialNumber=""
strComputer="."
Set objWMIService=GetObject("winmgmts:\\"&strComputer&"\root\cimv2")
Set colItems=objWMIService.ExecQuery("Select*fromWin32_BaseBoard")
For Each objItem In colItems
If objItem.SerialNumber<>"" Then GetMainboardSerialNumber=objItem.SerialNumber
Exit Function
End If
Next
End Function
Private Sub Command1_Click()
MsgBox GetMainboardSerialNumber
End Sub
#6
cssnet2023-01-14 22:39
找了个C语言版的硬件信息获取:
https://blog.

翻译成VFP估计不太容易,建议修改一下,封装到C算法库中,那样会比较环保、实惠。

#7
nbwww2023-01-15 07:54
试一下这个
程序代码:
LOCAL oWMI AS OBJECT,oLocal AS OBJECT,oHARDWARE AS OBJECT,object1 AS OBJECT,lcCPUID,LcMAC,lcHDID,lcSerial
oWMI=CREATEOBJECT("WbemScripting.SWbemLocator")
oLocal=oWMI.ConnectServer(".", "root\cimv2")

oHARDWARE=oLocal.ExecQuery("SELECT * FROM Win32_Processor")
FOR EACH object1 IN oHARDWARE
lcCPUID=object1.Properties_('ProcessorId').VALUE
EXIT
ENDFOR

oHARDWARE=oLocal.ExecQuery("SELECT * FROM Win32_PhysicalMedia")
FOR EACH object1 IN oHARDWARE
lcHDID=object1.Properties_('SerialNumber').VALUE
EXIT
ENDFOR

oHARDWARE=oLocal.ExecQuery("SELECT * FROM Win32_BaseBoard")
FOR EACH object1 IN oHARDWARE
MAHDID=object1.Properties_('SerialNumber').VALUE
EXIT
ENDFOR

oHARDWARE=oLocal.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=1")
FOR EACH object1 IN oHARDWARE
LcMAC=object1.Properties_('MACAddress').VALUE
EXIT
ENDFOR
?'CPU序号:',lcCPUID
?'硬盘序号:',lcHDID
?'主板序列号:',MAHDID
?'网卡MAC地址:',LcMAC
#8
schtg2023-01-15 09:13
回复 7楼 nbwww
谢谢分享!
#9
吹水佬2023-01-15 09:20
回复 5楼 sam_jiang
用WMI要多测试不同的机器和操作系统版本,WMI好多是系统的逻辑数据,不是物理数据,而且操作系统升级后数据有可能不一样。
1