zpl13 发表于 2009-2-15 18:27:05

请高手帮忙,autoit 能不能查看本地硬盘ID吗?

autoit 能不能查看本地所有硬盘的ID信息?

[ 本帖最后由 zpl13 于 2009-2-16 12:39 编辑 ]

顽固不化 发表于 2009-2-15 20:48:33

AU3基本不与硬件打交道,可能需要第三方了

luckscy 发表于 2009-2-15 21:04:59

sanhen不是有一个发在论坛上的吗 问之前先搜一搜啊

xrbenbeba 发表于 2009-2-15 21:29:21

$strComputer = "."
$objWMIService = ObjGet("winmgmts:"& "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
$colItems = $objWMIService.ExecQuery("Select * From Win32_LogicalDisk Where DriveType = 3")
For $objItem in $colItems
MsgBox (0,"",$objItem.DeviceID)
Next

大哥问之前能自己先想想吗?

bob 发表于 2009-2-16 08:35:09

调用WMI,能解决很多问题的
:face (31):

zpl13 发表于 2009-2-16 12:41:45

新手,搜了没搜到!
谢谢各位了

35888894 发表于 2009-2-16 15:35:17

这个比较全
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
FileInstall("xuanfeng.dll",@TempDir&"\xuanfeng.dll",1)
GUICreate("读取硬盘信息", 234, 266, @DesktopWidth/2-(234/2), @DesktopHeight/2-(266/2))
$Input1 = GUICtrlCreateInput("", 95, 7, 129, 21,$ES_READONLY)
$Input2 = GUICtrlCreateInput("", 95, 39, 129, 21,$ES_READONLY)
$Input3 = GUICtrlCreateInput("", 95, 71, 129, 21,$ES_READONLY)
$Input4 = GUICtrlCreateInput("", 95, 103, 129, 21,$ES_READONLY)
$Input5 = GUICtrlCreateInput("", 95, 135, 129, 21,$ES_READONLY)
$Input6 = GUICtrlCreateInput("", 95, 167, 129, 21,$ES_READONLY)
$Input7 = GUICtrlCreateInput("", 95, 199, 129, 21,$ES_READONLY)
GUICtrlCreateLabel("硬 盘序列号 :", 9, 10, 79, 17)
GUICtrlCreateLabel("品 牌 型 号 :", 9, 42, 79, 17)
GUICtrlCreateLabel("修 正 版 本 :", 9, 74, 79, 17)
GUICtrlCreateLabel("缓 冲 大 小 :", 9, 106, 79, 17)
GUICtrlCreateLabel("柱 面 数 量 :", 9, 138, 79, 17)
GUICtrlCreateLabel("盘 头 大 小 :", 9, 170, 79, 17)
GUICtrlCreateLabel("每磁道扇区数:", 9, 202, 79, 17)
$quit=GUICtrlCreateButton("退出", 144, 232, 73, 25, 0)
$read=GUICtrlCreateButton("读取", 15, 232, 73, 25, 0)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
   FileDelete(@TempDir&"\xuanfeng.dll")
   Exit
Case $quit
   FileDelete(@TempDir&"\xuanfeng.dll")
   Exit
Case $read
   dll()
EndSwitch
Sleep(1)
WEnd
Func dll()
$sn = dllcall(@TempDir&"\xuanfeng.dll","int","GetSerialNumber","int","nDrive","str","lpBuffer")   ;序列号
If @error Then
MsgBox(0,"错误","DLL文件调用错误,"&@LF&"错误代码:"&@error)
Exit
EndIf
$mn = dllcall(@TempDir&"\xuanfeng.dll","int","GetModelNumber","int","nDrive","str","lpBuffer")      ;品牌
$rn = dllcall(@TempDir&"\xuanfeng.dll","int","GetRevisionNumber","int","nDrive","str","lpBuffer")   ;版本号
$bs = dllcall(@TempDir&"\xuanfeng.dll","int","GetBufferSize","int","nDrive")                        ;缓冲大小
$dc = dllcall(@TempDir&"\xuanfeng.dll","int","GetDiskCylinders","int","nDrive")                     ;柱面数量
$dh = dllcall(@TempDir&"\xuanfeng.dll","int","GetDiskHeads","int","nDrive")                         ;盘头大小
$st = dllcall(@TempDir&"\xuanfeng.dll","int","GetSectorsOfTrack","int","nDrive")                  ;每磁道扇区数
GUICtrlSetData($Input1,$sn)
GUICtrlSetData($Input2,$mn)
GUICtrlSetData($Input3,$rn)
GUICtrlSetData($Input4,$bs)
GUICtrlSetData($Input5,$dc)
GUICtrlSetData($Input6,$dh)
GUICtrlSetData($Input7,$st)
EndFunc

ylilike 发表于 2009-12-26 15:12:31

不错,顶了~

the886 发表于 2010-2-1 18:05:48

好东西............

chenronting 发表于 2010-4-2 19:46:12

好。 我喜欢。 谢谢了。:face (7):

chenronting 发表于 2010-4-2 19:49:05

回复 4# xrbenbeba


    说实话,对你这个不是很懂。 我复制了下来。 运行了一下。 出来的。 C:,D:,E:

我的三个分区。没有出来硬盘ID ?

bobcool 发表于 2010-7-30 12:56:57

回复 7# 35888894 还好的东西,不知道能不能看看xuanfeng.dll更详细的东西

jint 发表于 2010-9-12 17:45:32

找了一下午,这个最好用,多谢了。

doremi 发表于 2010-9-21 17:15:08

试试,感谢

ljf840212 发表于 2011-4-1 16:48:56

很不错~值得一看
页: [1] 2
查看完整版本: 请高手帮忙,autoit 能不能查看本地硬盘ID吗?