반응형
*VBNET WMI 를 이용한 실시간 메모리 사용량 체크 (Memory Check) 예제...
- WMI 를 사용하기 위해 참조 -> System.Management dll 을 추가 -> 소스 코드 Imports System.Management
전체 소스 코드
Form1.vb
Imports System.Management
Public Class Form1
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
'Timer Start
timer1.Start()
End Sub
Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
'Timer Stop
timer1.Stop()
End Sub
Private Sub timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick
Dim itotalMem As Integer = 0 ' 총 메모리 KB 단위
Dim itotalMemMB As Integer = 0 ' 총 메모리 MB 단위
Dim ifreeMem As Integer = 0 ' 사용 가능 메모리 KB 단위
Dim ifreeMemMB As Integer = 0 ' 사용 가능 메모리 MB 단위
Dim cls As ManagementClass = New ManagementClass("Win32_OperatingSystem")
Dim moc As ManagementObjectCollection = cls.GetInstances()
For Each mo As ManagementObject In moc
itotalMem = Integer.Parse(mo("TotalVisibleMemorySize").ToString())
ifreeMem = Integer.Parse(mo("FreePhysicalMemory").ToString())
Next
itotalMemMB = itotalMem / 1024 ' 총 메모리 MB 단위 변경
ifreeMemMB = ifreeMem / 1024 ' 사용 가능 메모리 MB 단위 변경 Then
'Progressbar Max Setting...
pbTotal.Maximum = itotalMemMB
pbFree.Maximum = itotalMemMB
pbUse.Maximum = itotalMemMB
'Label Display
lblTotal.Text = itotalMemMB.ToString()
lblFree.Text = ifreeMemMB.ToString()
lblUse.Text = (itotalMemMB - ifreeMemMB).ToString()
'Progressbar Display
pbTotal.Value = itotalMemMB
pbFree.Value = ifreeMemMB
pbUse.Value = (itotalMemMB - ifreeMemMB)
End Sub
End Class
*예제 결과
아래의 그림과 같이 NoxPlayer 를 켜고 난 뒤 게임을 실행 하면서 메모리 사용량이 변화 하는 것을 WMI 를 이용한
프로그램과 작업관리자 화면 을 동시에 비교 해 봤을 때 변화 하는 것을 볼 수 있습니다. 물론 단위가 작업관리자는 GB 로 나오고 WMI 를 이용해 만든 프로그램은 MB 이지만 1024를 한번 더 나누게 되면 단위는 GB 가 됩니다.
또한 소스 코드는 int 형 변수로 구현 했지만 Double 형 변수를 써서 구현 하게 되시면 작업 관리자 화면 처럼 소수점 2번째 자리 까지 표현 하면서 나타낼 수 있습니다.
https://kdsoft-zeros.tistory.com/168
반응형
'VB.NET Programming' 카테고리의 다른 글
[VBNET] 설치된 닷넷프레임워크 버전 리스트 조회 (0) | 2020.03.24 |
---|---|
[VBNET] [API] 제어판 기본 프린터(Default Printer) 변경 (0) | 2020.03.20 |
[VBNET] 제어판 프린터(Printer) 목록 불러오기 (0) | 2020.03.16 |
[VBNET] [API] Mouse Cursor Move And AutoClick Event (0) | 2020.03.12 |
[VBNET] [API] 마우스 커서 좌표 얻어오기 (0) | 2020.03.10 |