回答編集履歴

2

コピペミス(インデント)を修正

2015/05/03 10:42

投稿

htsign
htsign

スコア870

test CHANGED
@@ -86,7 +86,7 @@
86
86
 
87
87
  Dim item
88
88
 
89
- For Each item In wmi.ExecQuery(query)
89
+ For Each item In wmi.ExecQuery(query)
90
90
 
91
91
  MsgBox item.DeviceID
92
92
 

1

VB.NETとVBScriptバージョンを追記&変数名修正

2015/05/03 10:42

投稿

htsign
htsign

スコア870

test CHANGED
@@ -14,11 +14,11 @@
14
14
 
15
15
  var management = new ManagementClass("Win32_Volume");
16
16
 
17
- var instance = management.GetInstances();
17
+ var instances = management.GetInstances();
18
18
 
19
19
 
20
20
 
21
- foreach (ManagementObject item in instance)
21
+ foreach (ManagementObject item in instances)
22
22
 
23
23
  {
24
24
 
@@ -37,3 +37,59 @@
37
37
  ```
38
38
 
39
39
  `System.Management.dll`への参照が必要です。
40
+
41
+
42
+
43
+ ```lang-vbnet
44
+
45
+ Module Module1
46
+
47
+
48
+
49
+ Sub Main()
50
+
51
+ Dim management = New ManagementClass("Win32_Volume")
52
+
53
+ Dim instances = management.GetInstances()
54
+
55
+
56
+
57
+ For Each item As ManagementObject In instances
58
+
59
+ If item("DriveLetter").ToString() <> "C:" Then Continue For
60
+
61
+ Console.WriteLine(item("DeviceID").ToString())
62
+
63
+ Next
64
+
65
+ End Sub
66
+
67
+
68
+
69
+ End Module
70
+
71
+ ```
72
+
73
+ ```lang-vbscript
74
+
75
+
76
+
77
+ Option Explicit
78
+
79
+
80
+
81
+ Dim wmi: Set wmi = GetObject("winmgmts:")
82
+
83
+ Dim query: query = "SELECT * FROM Win32_Volume WHERE DriveLetter='C:'"
84
+
85
+
86
+
87
+ Dim item
88
+
89
+ For Each item In wmi.ExecQuery(query)
90
+
91
+ MsgBox item.DeviceID
92
+
93
+ Next
94
+
95
+ ```