6.WMI の Win32_OperatingSystem クラスを使っての OS 情報の取得(27_Sys_06) (旧、SampleNo.233) |
1.WMI の Win32_OperatingSystem クラスを使っての OS 情報の取得 2.WMI の Win32_OperatingSystem を使用する場合の付帯処理 3.上記実行結果 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :System.Management 参照設定:System.Management 参照設定方法参照 その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.WMI の Win32_OperatingSystem クラスを使っての OS 情報の取得 |
Imports System.Management Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim mc As New ManagementClass("Win32_OperatingSystem") Dim moCollection As ManagementObjectCollection = mc.GetInstances() TextBox1.Font = New Font("MS ゴシック", 12, FontStyle.Regular) TextBox1.Clear() Call GetosItem() For Each mo As ManagementObject In moCollection Dim s1 As String = "" For i As Integer = 0 To 63 '割り当てられていない場合エラーとなるので事前に調査 If IsNothing(mo.Item(osItem(i))) Then s1 = "*** Nothing ***" '取得できない場合 Else s1 = mo.Item(osItem(i)).ToString() '文字列に変換 End If 'VB で日付型に変換できない日付型で格納されているので、日付型に変換 If i = 23 Or i = 25 Or i = 26 Then Dim dt As DateTime = DateTime.Parse(Format(Int64.Parse(s1.Substring(0, 14)), "0000/00/00 00:00:00")) TextBox1.Text &= String.Format("{0: 00} {1} {2}", i, osItem(i).PadRight(42), dt) & vbCrLf Debug.Print(i.ToString & vbTab & osItem(i) & vbTab & dt) 'Excel での表示用 Else TextBox1.Text &= String.Format("{0: 00} {1} {2}", i, osItem(i).PadRight(42), s1) & vbCrLf Debug.Print(i.ToString & vbTab & osItem(i) & vbTab & s1) 'Excel での表示用 End If Next Next End Sub |
2.WMI の Win32_OperatingSystem を使用する場合の付帯処理 |
#Region " WMI の Win32_OperatingSystem を使用する場合の付帯処理" Private osItem(63) As String Private Sub GetosItem() osItem(0) = "BootDevice" ' osItem(1) = "BuildNumber" osItem(2) = "BuildType" osItem(3) = "Caption" osItem(4) = "CodeSet" osItem(5) = "CountryCode" osItem(6) = "CreationClassName" osItem(7) = "CSCreationClassName" osItem(8) = "CSDVersion" osItem(9) = "CSName" osItem(10) = "CurrentTimeZone" osItem(11) = "DataExecutionPrevention_Available" osItem(12) = "DataExecutionPrevention_32BitApplications" osItem(13) = "DataExecutionPrevention_Drivers" osItem(14) = "DataExecutionPrevention_SupportPolicy" osItem(15) = "Debug" osItem(16) = "Description" osItem(17) = "Distributed" osItem(18) = "EncryptionLevel" osItem(19) = "ForegroundApplicationBoost" osItem(20) = "FreePhysicalMemory" osItem(21) = "FreeSpaceInPagingFiles" osItem(22) = "FreeVirtualMemory" osItem(23) = "InstallDate" osItem(24) = "LargeSystemCache" osItem(25) = "LastBootUpTime" osItem(26) = "LocalDateTime" osItem(27) = "Locale" osItem(28) = "Manufacturer" osItem(29) = "MaxNumberOfProcesses" osItem(30) = "MaxProcessMemorySize" osItem(31) = "MUILanguages" osItem(32) = "Name" osItem(33) = "NumberOfLicensedUsers" osItem(34) = "NumberOfProcesses" osItem(35) = "NumberOfUsers" osItem(36) = "OperatingSystemSKU" osItem(37) = "Organization" osItem(38) = "OSArchitecture" osItem(39) = "OSLanguage" osItem(40) = "OSProductSuite" osItem(41) = "OSType" osItem(42) = "OtherTypeDescription" osItem(43) = "PAEEnabled" osItem(44) = "PlusProductID" osItem(45) = "PlusVersionNumber" osItem(46) = "PortableOperatingSystem" osItem(47) = "Primary" osItem(48) = "ProductType" osItem(49) = "RegisteredUser" osItem(50) = "SerialNumber" osItem(51) = "ServicePackMajorVersion" osItem(52) = "ServicePackMinorVersion" osItem(53) = "SizeStoredInPagingFiles" osItem(54) = "Status" osItem(55) = "SuiteMask" osItem(56) = "SystemDevice" osItem(57) = "SystemDirectory" osItem(58) = "SystemDrive" osItem(59) = "TotalSwapSpaceSize" osItem(60) = "TotalVirtualMemorySize" osItem(61) = "TotalVisibleMemorySize" osItem(62) = "Version" osItem(63) = "WindowsDirectory" End Sub #End Region |
3.上記実行結果 |
おことわり WMI と Win32 API とでは、物理メモリ以外で呼び方?、集計方法が違うようです。(私の理解不足!) 解説の部分は、訳文を私なりに解釈して引用したもので、間違った解釈をしている部分があるかも知れません。 詳しくは、MSDN の Win32_OperatingSystem class 掲載サイトを調べて下さい。 |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |