メモリ情報を取得するには

<システムインフォメーション表示ソフトを作ろう>

宣言

(Private) Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type
(Private) Declare Sub GlobalMemoryStatus Lib "kernel32" (Memory As MEMORYSTATUS)

※Privateは必要に応じて削除またはPublicに変更

引 数 説 明

Memory

MEMORYSTATUS構造体

結果を得る変数

MEMORYSTATUS 構 造 体 に 関 す る 説 明

要素名 機能 使用頻度
dwLength 構造体のサイズが格納される C
dwMemoryLoad メモリの使用率が格納される A
dwTotalPhys メモリの総容量(単位:バイト) A
dwAvailPhys メモリの空き容量(単位:バイト) A
dwTotalPageFile 保持しているページングファイルのバイト数(仮想メモリのこと) B
dwAvailPageFile ページングファイルの利用できる空間のバイト数 B
dwTotalVirtual ユーザモードで処理がアクセスできる仮想アドレス空間のバイト数(物理メモリ+仮想メモリ) B
dwAvailVirtual ユーザモードで処理がアクセスできる占有も予約もされていない仮想アドレス空間のバイト数。 B

サ ン プ ル プ ロ グ ラ ム

まず、VisualBasicを起動してプロジェクトを新しく作成してください。まず、フォームにタイマーとリストボックスを張りつけ、次のコードを貼り付けてください。

動作確認:Visual Basic 5.0(Visual Basic 4.0でも問題なく動作するはずです),Windows98

Private Type MEMORYSTATUS '構造体の宣言
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type

Private Declare Sub GlobalMemoryStatus Lib "kernel32" (Memory As MEMORYSTATUS) 'APIの宣言

Private Sub Form_Load()
'1秒ごとに情報を更新
Timer1.Interval = 1000
End Sub


Private Sub Timer1_Timer()
List1.Clear 'リストボックスのクリア
Dim Mem As MEMORYSTATUS '変数の宣言
GlobalMemoryStatus Mem 'メモリ情報の取得

'メモリ情報表示
List1.AddItem "メモリ使用率:" & Str(Mem.dwMemoryLoad) & "%"
List1.AddItem "メモリ容量:" & Str(Mem.dwTotalPhys) & "バイト(約" & Str(Int(Mem.dwTotalPhys / 1024 / 1024)) & "MB)"
List1.AddItem "メモリ空き容量:" & Str(Mem.dwAvailPhys) & "バイト(約" & Str(Int(Mem.dwAvailPhys / 1024 / 1024)) & "MB)"
End Sub

近いうちに本格的なサンプルも作成するつもりです。

トップに戻る
Visual Basicワンポイントテクニック目次に戻る

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル