□投稿者/ hidetake -(2007/01/10(Wed) 09:59:58)
| > 「全てのドライブから」A.tblを検索、ならできそうですが、 > USBフラッシュかどうかはディスクサイズで推測するぐらいしかなさそうです。
桐だけでは無理でしょうね。
と言う事で、ほとんど独り言になってしまうのだろうけど?
FileSystemObject の Drive オブジェクトを利用すれば '================================================================= 'FileSystemObject の Drive オブジェクトを利用する方法
For Each Drv In WScript.CreateObject("Scripting.FileSystemObject").Drives If Drv.DriveType = 1 Then Call MsgBox(Drv.DriveLetter & "は取外可能ドライブです") End If Next
'----------------------------------- 'Unknown 0 ドライブタイプを判別できません。 'Removable 1 取り外し可能ドライブ。たとえば、フロッピーなど。 'Fixed 2 取り外し不可能なドライブ。たとえば、普通のハードディスクなど。 'Remote 3 ネットワークに装填されたドライブまたは共有ドライブ。 'CDRom 4 ドライブはCD-ROMです。 'RAMDisk 5 ドライブは揮発性のディスクRAMです。 '----------------------------------- '=================================================================
WMI の Win32_LogicalDisk を利用すれば '================================================================= 'WMI の Win32_LogicalDisk を利用する方法
strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DriveType = 2", , 48)
For Each objItem In colItems Call MsgBox(objItem.DeviceID & "は取外可能ドライブです") Next
'----------------------------------- 'ドライブの種類を取得 '0 Unknown '1 No Root Directory '2 Removable Disk '3 Local Disk '4 Network Drive '5 Compact Disc '6 RAM Disk '----------------------------------- '=================================================================
てな感じで、リムーバブルなドライブは取得できるようだけれど この場合は、フロッピーディスクとかフラッシュドライブとかの 判断まではつきませんね。
WMI を使う限り、私の環境では MediaType が未定義のものを条件 に加えると、一応、Flash ドライブだけが取得できましたけど。
Select * from Win32_LogicalDisk Where DriveType = 2 And MediaType is NULL
と、備忘録をかねて。 (^^;
|
|