找回密码
 加入
搜索
查看: 2653|回复: 3

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

[复制链接]
发表于 2016-3-24 00:27:01 | 显示全部楼层 |阅读模式
本帖最后由 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[1024];str type[1024];str modelNumber[1024];str serialNumber[1024];str revisionNumber[1024];str driveType[1024];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)

本帖子中包含更多资源

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

×
发表于 2016-3-24 01:33:08 | 显示全部楼层
这么晚了还在码
发表于 2016-3-24 06:42:37 | 显示全部楼层
关注一下,我遇到的问题跟你的问题差不多
 楼主| 发表于 2016-3-25 21:53:51 | 显示全部楼层
自己顶一下。已经知晓对控制台EXE的读取,并自己做了一个简单的GUI。      
但就是不知道怎么变成DLL及如何调用。

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-12-26 09:35 , Processed in 0.077255 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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