掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
USBメモリのドライブ名を取得する方法 (ID:47664)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
DelphiじゃなくてVBSですみません。が、これはこれで何か役に立ちそうな気がするので。 出力例: IDE DiskDrive: \\.\PHYSICALDRIVE0 DiskPartition: Disk #0, Partition #0 LogicalDisk: C: DiskPartition: Disk #0, Partition #1 LogicalDisk: E: USB DiskDrive: \\.\PHYSICALDRIVE1 DiskPartition: Disk #1, Partition #0 LogicalDisk: F: DiskDrive: \\.\PHYSICALDRIVE2 *Removable Media* DiskPartition: Disk #2, Partition #0 LogicalDisk: G: 'GetDrivesInfoByType.vbs InterfaceTypes=Array("SCSI", "HDC", "IDE", "USB", "1394") InfoStr="" For Each InterfaceType in InterfaceTypes GetDrivesInfoByType InterfaceType, InfoStr Next Wscript.Echo InfoStr Wscript.Quit Function GetDrivesInfoByType(Value, ByRef Str) GetDrivesInfoByType=False LinesAdd Str, "" LinesAdd Str, Value strComputer="." Set WMI=GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Query="SELECT * FROM Win32_DiskDrive WHERE InterfaceType='" & Value & "'" Set DiskDrives=WMI.ExecQuery(Query) If DiskDrives.Count=0 Then LinesAdd Str, " DiskDrives None." For Each DiskDrive in DiskDrives Removable="" For Each Capability in DiskDrive.Capabilities If Capability=7 Then Removable=" *Removable Media*" Next LinesAdd Str, " DiskDrive: " & DiskDrive.DeviceID & Removable strDeviceID=Replace(DiskDrive.DeviceID, "\", "\\") Query="ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & strDeviceID Query=Query & """} WHERE AssocClass=Win32_DiskDriveToDiskPartition" Set DiskPartitions=WMI.ExecQuery(Query) If DiskPartitions.Count=0 Then LinesAdd Str, " DiskPartitions None." For Each DiskPartition in DiskPartitions LinesAdd Str, " DiskPartition: " & DiskPartition.DeviceID Query="ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & DiskPartition.DeviceID Query=Query & """} WHERE AssocClass=Win32_LogicalDiskToPartition" Set LogicalDisks=WMI.ExecQuery(Query) If LogicalDisks.Count=0 Then LinesAdd Str, " LogicalDisks None." For Each LogicalDisk In LogicalDisks LinesAdd Str, " LogicalDisk: " & LogicalDisk.DeviceID GetDrivesInfoByType=True Next Set LogicalDisks=Nothing Next Set DiskPartitions=Nothing Next Set DiskDrives=Nothing Set WMI=Nothing End Function Sub LinesAdd(ByRef S, V) S=S & V & vbNewLine End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.