メモリ情報の取得(U)             <TOP>


メモリ情報を取得します。

GlobalMemoryStatus メモリ情報取得

 

Timerを使って空き物理メモリ情報を継続して取得してみます。

フリーソフト「MemoryPlus」と同時起動させ確認しています。

Timer を使って継続取得・・・

 
'================================================================
'= メモリ情報の取得(U)
'=    (GlobalMemoryStatus2.bas)
'================================================================
#include "Windows.bi"

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

' メモリ情報を取得
Declare Sub Api_GlobalMemoryStatus Lib "Kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS)

Var Shared Text(3) As Object
Var Shared Timer1 As Object

For i = 0 To 3
    Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1)))
    Text(i).SetFontSize 12
Next
Timer1.Attach GetDlgItem("Timer1")

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Timer1.SetInterval 10
    Timer1.Enable -1
End Sub

'================================================================
'                                                                =
'================================================================
Declare Sub Timer1_Timer edecl ()
Sub Timer1_Timer()
    Var ms As MEMORYSTATUS
    
    'メモリ情報を取得する
    Api_GlobalMemoryStatus ms
   
    '取得したメモリ情報を表示する
    Text(2).SetWindowText Format$(ms.dwTotalPhys, "##,###,###,### Byte")
    Text(3).SetWindowText Format$(ms.dwAvailPhys, "##,###,###,### Byte")
End Sub

'================================================================
'                                                                =
'================================================================
While 1
    WaitEvent
Wend
Stop
End