VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 システム及びOS情報関係のメニュー
1.環境変数に格納されている情報を取得
2.コントロールパネル及びコントロールパネル内の各メニューを開く
3.INI ファイルへの書き込み及び読み込み
4.レジストリへの保存及び読み取り・削除例
5.オペレーティングシステムのバージョン情報を取得
6.WMI の Win32_OperatingSystem クラスを使っての OS 情報の取得
7.現在のシステム環境に関する情報(108項目)を取得
8.ウィンドウ・画面等の幅や高さ等と現在の構成を(84項目)取得
9.Win32 API を使っての物理メモリ及び仮想メモリに関する情報を取得
10.コンピューターの製造会社名及びモデル名/製品型番を取得
11.現在の OS 及びプロセスが 64ビットかどうかを調べる
12.
 . 
20.その他、当サイト内に掲載のシステム及びOS情報に関するサンプル


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.上記実行結果

0 BootDevice \Device\HarddiskVolume2 OS の起動元となるディスクドライブの名前
1 BuildNumber 9600 OS のビルド番号
2 BuildType Multiprocessor Free OS に使用されるビルドの種類
3 Caption Microsoft Windows 8.1 OS のバージョンを含む短い説明文
4 CodeSet 932 OS が使用しているコードページ値(932=日本語(シフトJIS))
5 CountryCode 81 国番号(81=日本)
6 CreationClassName Win32_OperatingSystem インスタンスの作成で使用されるクラス名
7 CSCreationClassName Win32_ComputerSystem スコーピング コンピューター システムの作成クラス名
8 CSDVersion *** Nothing *** インストールされている最新のサービスパック情報(未インストール)
9 CSName UserName スコーピングコンピューターシステムの名前
10 CurrentTimeZone 540 グリニッジ標準時 (GMT) からオフセットされている分数(日本だから 9時間の時差)
11 DataExecution
Prevention_Available
TRUE TRUE の場合は、データ実行防止技術をサポートすることをす
12 DataExecutionPrevention_
32BitApplications
TRUE True の場合、データ実行防止のハードウェア機能が使用可能である場合、実行中である
13 DataExecutionPrevention_
Drivers
TRUE TRUE の場合は、データ実行防止が適用された状態でドライバーが実行されていることを示す
14 DataExecutionPrevention_
SupportPolicy
2 データ実行防止の 4 つの設定のうちのどれが適用されるか表す(2=Opt In)
15 Debug FALSE OS がチェック (デバッグ) ビルドであるかどうかを示す、TRUE の場合 User.exe のデバッグバージョンがインストールされている
16 Description Windowsオペレーティングシステムの説明
17 Distributed FALSE OSは、複数のコンピューターシステムノードに分散されているかどうかを示す
18 EncryptionLevel 256 保護されている処理の暗号化のレベルが ** bit かを表す
19 ForegroundApplicationBoost 2 フォアグラウンドアプリケーションに与えられる優先度の上昇を表す(2=(デフォルト)最大 )
20 FreePhysicalMemory 5102428 物理メモリの空き容量(KB 単位) Win32APIと同じ
21 FreeSpaceInPagingFiles 695348 他のページをスワップアウトすることなく OS のページングファイルにマップできるメモリ量
22 FreeVirtualMemory 5346832 仮想メモリの空き容量(RAM の空き領域をページング領域に追加して算出) Win32APIのページング空き容量と同じ
23 InstallDate 2014/3/5 14:35 オブジェクトがインストールされた日時
24 LargeSystemCache *** Nothing *** Windows Vista 以降、このプロパティは廃止され、サポートされていません
25 LastBootUpTime 2014/4/25 06:44 OS が最後に起動した日時
26 LocalDateTime 2014/4/25 15:55 OS のローカル日時
27 Locale 411 OSで使用される言語識別子
28 Manufacturer Microsoft Corporation OS の製造元の名前
29 MaxNumberOfProcesses 4294967295 プロセスの最大数は、OS がサポートできるコンテキスト
30 MaxProcessMemorySize 1.37439E+11 プロセスに割り当て可能なメモリのキロバイト単位の最大数
31 MUILanguages コンピューターにインストールされている多言語ユーザーインターフェイスパック
32 Name Microsoft Windows 8.1|C:\Windows|\Device\
Harddisk0\Partition4
コンピューターシステム内のシステムのインスタンスの名前
33 NumberOfLicensedUsers *** Nothing *** OS のためのユーザーライセンスの数
34 NumberOfProcesses 123 現在ロードされているか、OS 上で実行されているプロセスコンテキストの数
35 NumberOfUsers 2 現在の状態情報を記憶されたユーザーセッションの数
36 OperatingSystemSKU 101 OS 用の在庫管理単位(SKU)の数
37 Organization Toshiba OS の登録ユーザーの会社名
38 OSArchitecture 64 ビット OS のアーキテクチャ(32 ビット or 64 ビット)
39 OSLanguage 1041 インストールされている OS の言語バージョン(1041=日本語、1042=韓国語)
40 OSProductSuite 768 OS にインストールされ、さらにライセンスされているシステム製品の識別値
41 OSType 18 OS の種類(18=WINNT )
42 OtherTypeDescription *** Nothing *** 現在の OS のバージョン用の追加説明
43 PAEEnabled *** Nothing *** Trueの場合、PAE は、Intel プロセッサで実行されている OS で有効になっている
44 PlusProductID *** Nothing *** Windowsのプラスの ID 番号
45 PlusVersionNumber *** Nothing *** Windowsのプラスのバージョン番号
46 PortableOperatingSystem FALSE OS は、外部USBデバイスからブートするかどうかを指定します
47 Primary TRUE TRUE はこれはプライマリの OS であることを示す
48 ProductType 1 追加のシステム情報(1=ワークステーション、3=サーバー)
49 RegisteredUser ■■■■■■■■■ OS の登録ユーザーの名前
50 SerialNumber ■■■■■■■■■ OS の製品シリアルID番号
51 ServicePackMajorVersion 0 コンピューターシステムにインストールされているサービスパックのメジャーバージョン番号
52 ServicePackMinorVersion 0 コンピューターシステムにインストールされているサービスパックのマイナーバージョン番号
53 SizeStoredInPagingFiles 1638400 OS のページングファイルで格納される合計キロバイト
54 Status OK オブジェクトの現在の状態(OK、Error、Degraded 等)
55 SuiteMask 784 システムで利用可能な製品群を特定するビットフラグ
56 SystemDevice \Device\HarddiskVolume4 OS がインストールされている物理ディスクパーティション。
57 SystemDirectory C:\Windows\system32 OS のシステムディレクトリ
58 SystemDrive C: OS が存在するディスクドライブ
59 TotalSwapSpaceSize *** Nothing *** スワップ領域の合計キロバイト
60 TotalVirtualMemorySize 9936980 仮想メモリの搭載容量(KB) RAM の合計数をページング領域数に追加して算出 Win32APIのページング搭載容量と同じ
61 TotalVisibleMemorySize 8298580 物理メモリの搭載容量(KB) Win32API と同じ
62 Version 6.3.9600 OS のバージョン番号
63 WindowsDirectory C:\Windows OS の Windows ディレクトリ

おことわり
 WMI と Win32 API とでは、物理メモリ以外で呼び方?、集計方法が違うようです。(私の理解不足!)
 解説の部分は、訳文を私なりに解釈して引用したもので、間違った解釈をしている部分があるかも知れません。
 詳しくは、MSDN の Win32_OperatingSystem class 掲載サイトを調べて下さい。

このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。