找回密码
 加入
搜索
查看: 18389|回复: 22

[AU3基础] 【已解决】读取硬盘物理序列号的函数是什么啊?

 火.. [复制链接]
发表于 2010-10-16 11:43:24 | 显示全部楼层 |阅读模式
本帖最后由 kood481748 于 2010-10-31 22:27 编辑

请问各位大虾,读取硬盘物理序列号的函数是什么啊?还有读取CPU/主板/显卡以及各个硬件的物理序列号的函数都是什么啊?小弟我要做一个注册码程序。要通过硬件物理序列号来产生机器码。

评分

参与人数 1金钱 +10 收起 理由
hzxymkb + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-10-16 15:42:43 | 显示全部楼层
获取硬盘串号代码如下,不知道合不合要求
#include <array.au3>
Local $Hard
$Hard=_wmi_Win32_PhysicalMedia()
_ArrayDisplay($Hard)
Func _wmi_Win32_PhysicalMedia()
        Local $wbemFlagReturnImmediately = 0x10
        Local $wbemFlagForwardOnly = 0x20
        Local $colItems = ""
        Local $strComputer = "localhost"

        Local $Output=""
    Local $OutArr[1][2],$k=1
        Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
        $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMedia", "WQL", _
                                          $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
        $diskdrive=$objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _
                                          $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
        
        If IsObj($colItems) then
           For $objItem In $colItems
              ;$Output &= "Tag: " & $objItem.Tag & "|" & "SerialNumber: " & $objItem.SerialNumber & @CRLF
                  ReDim $OutArr[$k+1][2]
                  $OutArr[$k][0]=$objItem.Tag
                  $OutArr[$k][1]=$objItem.SerialNumber
                  $k+=1
           Next
        Endif
        $k=1
        If IsObj($diskdrive) Then
                For $objItem In $diskdrive
                        ;$Output&="Name:"&$objItem.Name&"|"&$objItem.caption &@CRLF
                        If $objItem.Name=$OutArr[$k][0] Then $OutArr[$k][0]=$objItem.caption
                        $k+=1
                Next
        EndIf
        $OutArr[0][0]=UBound($OutArr)-1
        Return $OutArr
EndFunc
发表于 2010-10-16 19:17:04 | 显示全部楼层
_Winapi_GetDiskSerialNumber
发表于 2010-10-16 19:53:03 | 显示全部楼层
API和WMI都能实现哈
发表于 2010-10-16 19:54:24 | 显示全部楼层
 楼主| 发表于 2010-10-16 23:02:06 | 显示全部楼层
楼上的兄弟,你发的链接我看不了,没有阅读权限啊
 楼主| 发表于 2010-10-17 12:37:22 | 显示全部楼层
2楼的老师,我要的是读取硬盘物理序列号的函数,不是读取硬盘型号的函数。
您搞错了啊。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-10-17 23:11:13 | 显示全部楼层
回复 7# kood481748
winxp sp3和WIN7下测试成功。VISTA下失败。
发表于 2010-10-17 23:41:51 | 显示全部楼层
本帖最后由 netegg 于 2010-10-17 23:43 编辑

不知道你到底要的什么,你自己对比下哪个是型号,哪个是序列号,这和你前面的标签关系不大

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-10-17 23:44:47 | 显示全部楼层
序列号里能出ata device还有空格,没见过
 楼主| 发表于 2010-10-17 23:49:40 | 显示全部楼层
回复 8# 3mile
使用了3mile老师的代码,结果如下:

图中,[1]是160G硬盘 SATA接口,[2]是80G硬盘 IDE接口,[3]是2G的U盘
请问一下,图中红圈部分是什么东西啊,这不是硬盘序列号啊。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-10-19 19:44:42 | 显示全部楼层
好像有个名叫getdisknum.au3的UDF,有在坛子里面看到过,貌似就是这种功能吧?
发表于 2010-10-19 19:56:44 | 显示全部楼层
回复 12# kingfirekkk

好好学学再说,那个是获取硬盘数的
发表于 2010-10-19 20:04:19 | 显示全部楼层
很高深的东西,看不懂,不过很多程序都可以访问硬盘的屋里序列号。
发表于 2010-10-20 10:37:01 | 显示全部楼层
论坛中的。
#include "getdisknum.au3"

$DiskNum=_GetDiskNum(0)  ;这个0是硬盘的序号。 有几个硬盘就是几减1。 比如,想获取第三个硬盘的硬盘号,则是_GetDiskNum(2)
msgbox(0,"",$DiskNum)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 14:59 , Processed in 0.097000 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表