如何获取硬盘列表?
想在下拉列表中进行选择硬盘的操作,应该怎样获取主机中的物理磁盘(不是分区)列表呢? wmi吧……真麻烦,怎么要这样做呢? 楼主不妨看下这个:Local $var = DriveGetDrive("all")
Local $Drives = ""
If Not @error Then
Local $Var = _GetDiskType()
For $J = 1 To $Var
$Drives = $Drives & ($Ver[$J] & @CRLF)
Next
EndIf
Func _GetDiskType()
Local $Disk = "HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum\"
Local $Enum = "HKLM\SYSTEM\CurrentControlSet\Enum\"
Local $Count = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum\", "Count")
Dim $Return[$Count + 1]
$Return = $Count
For $J = 1 To $Count
$Return[$J] = RegRead($Enum & RegRead($Disk, $J - 1), "FriendlyName")
Next
Return $Return
EndFunc ;==>_GetDiskType 运行报错:
C:\Documents and Settings\Administrator\桌面\getdisk.au3(6,39) : WARNING: $Ver: possibly used before declaration.
$Drives = $Drives & ($Ver[$J] &
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Administrator\桌面\getdisk.au3(6,39) : ERROR: $Ver: undeclared global variable.
$Drives = $Drives & ($Ver[$J] &
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Administrator\桌面\getdisk.au3 - 1 error(s), 1 warning(s) 用WMI获取成功。只是硬盘列表再获取分区列表暂时出问题。 原帖由 sanhen 于 2008-5-19 12:46 发表 http://www.autoitx.com/images/common/back.gif
用WMI获取成功。只是硬盘列表再获取分区列表暂时出问题。
那用wmi获取要怎么写|基本上我只需要获取硬盘列表,分区没有所谓
;
MsgBox(0,"test",_DiskList())
Func _DiskList()
;功能:返回硬盘列表,以|为分隔
;说明:www.autoitx.com 版权所有
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$Output=""
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
For $objItem In $colItems
$Output&=$objItem.Model&"|"
;硬盘列表
;$Output&=$objItem.Model&chr(32)&"("&int($objItem.Size/1000/1000/1000)&chr(32)&"GB"&")"&"|"
;硬盘列表加硬盘大小
Next
Return $Output
EndIf
EndFunc
哇,要是能显示到分区及分区下的子文件夹、文件,那功能真................................... 原帖由 木纳 于 2008-5-21 23:55 发表 http://www.autoitx.com/images/common/back.gif
哇,要是能显示到分区及分区下的子文件夹、文件,那功能真...................................
那真是一个翻版的资源管理器了 干吗不把分区的也顺便也发出来看看呢?? 真的很强悍啊,学习了!:face (29): 运行报错:
C:\Documents and Settings\Administrator\桌面\getdisk.au3(6,39) : WARNING: $Ver: possibly used before declaration.
$Drives = $Drives & ($Ver[$J] &
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
fatball 发表于 2008-5-19 12:39 http://www.autoitx.com/images/common/back.gifLocal $var = DriveGetDrive("all")
Local $Drives = ""
If Not @error Then
Local $Var = _GetDiskType()
For $J = 1 To $Var
$Drives = $Drives & ($Var[$J] & @CRLF)
Next
MsgBox(0,'',$Drives)
EndIf
Func _GetDiskType()
Local $Disk = "HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum\"
Local $Enum = "HKLM\SYSTEM\CurrentControlSet\Enum\"
Local $Count = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum\", "Count")
Dim $Return[$Count + 1]
$Return = $Count
For $J = 1 To $Count
$Return[$J] = RegRead($Enum & RegRead($Disk, $J - 1), "FriendlyName")
Next
Return $Return
EndFunc ;==>_GetDiskType 学习下,特别是楼上的代码 没有硬盘大小的信息。喜欢那个注册表的方法。 能不能获取到分区信息呢。特别是第几硬盘的第几分区
页:
[1]
2