castle921 发表于 2016-3-24 00:27:01

请问,AU3如何调用DiskID32.dll获取硬盘、U盘物理序列号?

本帖最后由 castle921 于 2016-3-25 20:22 编辑

求助论坛版主及各位,这是我从网上找的能够读取硬盘物理序列号的DiskID32.dll,实在不知道怎么调用。
另外我从https://www.winsim.com/diskid32/diskid32.html下载的diskid32.cpp源码,还能读取U盘物理序列号、MAC地址,是我认为读取磁盘物理序列号最好的源码,但它是控制台的,请问如何改为DLL。我是想用来做硬件绑定。
$dll = DllOpen(@ScriptDir&"diskid32.dll")
If @error Then
MsgBox(4096,"DllOpen Error", @error)
EndIf

Local $getInfo = DllStructCreate("str controllerType;str type;str modelNumber;str serialNumber;str revisionNumber;str driveType;DWORD bufferSize;DWORD cylinders;DWORD heads;WORD sectors")

$result = DLLCall($dll, "none","getDiskInfo","PTR",DllStructGetPtr($getInfo))

If @error Then
;@error: 1 = unable to use the DLL file,
                ;2 = unknown "return type",
                ;3 = "function" not found in the DLL file,
                ;4 = bad number of parameters,
                ;5 = bad parameter.
        ;MsgBox(4096,"I am here 2","" )
        MsgBox(4096,"DllCall Error", @error )
Else
MsgBox(4096,"Disk SN is", DllStructGetData($getInfo ,"serialNumber"))

EndIf
DllClose($dll)

jkq920 发表于 2016-3-24 01:33:08

这么晚了还在码

guland 发表于 2016-3-24 06:42:37

关注一下,我遇到的问题跟你的问题差不多

castle921 发表于 2016-3-25 21:53:51

自己顶一下。已经知晓对控制台EXE的读取,并自己做了一个简单的GUI。      
但就是不知道怎么变成DLL及如何调用。
页: [1]
查看完整版本: 请问,AU3如何调用DiskID32.dll获取硬盘、U盘物理序列号?