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情報に関するサンプル


9.Win32 API を使っての物理メモリ及び仮想メモリに関する情報を取得(27_Sys_09) (旧、SampleNo.229)
1.Win32 API を使っての物理メモリ及び仮想メモリに関する情報を取得
2.WMI で取得した場合
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.Runtime.InteropServices / System.Management
参照設定:
System.Management     参照設定方法参照
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.Win32 API を使っての物理メモリ及び仮想メモリに関する情報を取得

Imports System.Runtime.InteropServices
Imports System.Management

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim msx As New MEMORYSTATUSEX
    msx.dwLength = Marshal.SizeOf(msx)
    Dim mb As Integer = 1048576
    GlobalMemoryStatusEx(msx)

    With ListBox1
        .Font = New Font("MS ゴシック", 12, FontStyle.Regular)
        .Items.Clear()
        .Items.Add("メモリの使用率(%)      " & Format(msx.dwLoad / 100, "     ### %"))
        .Items.Add("物理メモリの搭載容量     " & Format(msx.dwTotalPhys / mb, "#,### MB"))
        .Items.Add("物理メモリの空き容量     " & Format(msx.dwAvailPhys / mb, "#,### MB"))
        .Items.Add("")
        .Items.Add("ページングの搭載容量  " & Format(msx.dwTotalPageFile / mb, " #,### MB"))
        .Items.Add("ページングの空き容量  " & Format(msx.dwAvailPageFile / mb, " #,### MB"))
        .Items.Add("仮想メモリの搭載容量    " & Format(msx.dwTotalVirtua / mb, " #,### MB"))
        .Items.Add("仮想メモリの空き容量    " & Format(msx.dwAvailVirtual / mb, " #,### MB"))
    End With
End Sub


'メモリ使用状態に関する情報を取得する(1011)
<DllImport("kernel32.dll", CharSet:=CharSet.Unicode, SetLastError:=True)> _
Private Shared Function GlobalMemoryStatusEx( _
    ByRef theMemoryStatus As MEMORYSTATUSEX) As Boolean
End Function

'メモリに関する情報を受け取る構造体(1012)
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> _
Public Structure MEMORYSTATUSEX
    Public dwLength As Integer       '構造体のサイズ
    Public dwLoad As Integer         'メモリの使用率(%)
    Public dwTotalPhys As Long       '物理メモリの搭載容量
    Public dwAvailPhys As Long       '物理メモリの空き容量
    Public dwTotalPageFile As Long   'ページングの搭載容量
    Public dwAvailPageFile As Long   'ページングの空き容量
    Public dwTotalVirtua As Long     '仮想メモリの搭載容量
    Public dwAvailVirtual As Long    '仮想メモリの空き容量
    Public dwAvailExtended As Long   '仮想メモリの拡張空き容量(この値は常に0です)
End Structure

上記実行結果(私の環境での取得結果)

メモリの使用率(%)       44 %


物理メモリの搭載容量    8,104 MB
物理メモリの空き容量    4,517 MB

ページングの搭載容量    9,384 MB
ページングの空き容量    4,549 MB

仮想メモリの搭載容量    2,048 MB
仮想メモリの空き容量    1,766 MB

おことわり
 WMI と Win32 API とでは、物理メモリ以外で呼び方?、集計方法が違うようです。(私の理解不足!)
 (理屈はともかく、ご自分の知りたいメモリ情報が解ればいいかなと...。)
 詳しくは、MSDN の掲載サイトを調べて下さい。

このページのトップへ移動します。 2.WMI で取得した場合

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim mc As New System.Management.ManagementClass("Win32_OperatingSystem")
    Dim collection As System.Management.ManagementObjectCollection = mc.GetInstances()
    ListBox2.Font = New Font("MS ゴシック", 12, FontStyle.Regular)
    ListBox2.Items.Clear()
    For Each mo As System.Management.ManagementObject In collection
        ListBox2.Items.Add("物理メモリの搭載容量     " & _
                        Format(Convert.ToInt32(mo("TotalVisibleMemorySize")) / 1024, "#,### MB"))
        ListBox2.Items.Add("物理メモリの空き容量     " & _
                        Format(Convert.ToInt32(mo("FreePhysicalMemory")) / 1024, "#,### MB"))
    Next
End Sub

上記実行結果(私の環境での取得結果)

物理メモリの搭載容量    8,104 MB
物理メモリの空き容量    4,515 MB

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


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


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


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


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





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