1. 모듈에 다음의 API FUNCTION 을 선언합니다.
Public Declare Function QueryPerformanceCounter Lib "kernel32" _
(lpPerformanceCount As LARGE_INTEGER) As Long
Public Declare Function QueryPerformanceFrequency Lib "kernel32" _
(lpFrequency As LARGE_INTEGER) As Long
Public Declare Function RegQueryValueEx Lib "advapi32.dll" _
Alias "RegQueryValueExA" _
(ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
lpType As Long, _
lpData As Any, _
lpcbData As Long) As Long
Public Declare Function RegOpenKey Lib "advapi32.dll" _
Alias "RegOpenKeyA" _
(ByVal hKey As Long, _
ByVal lpSubKey As String, _
phkResult As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
Public Type LARGE_INTEGER
lowpart As Long
highpart As Long
End Type
Public Const REG_DWORD = 4
Public Const HKEY_DYN_DATA = &H80000006
2. 폼에 CPU 사용률을 표시해줄 텍스트박스 하나와 타이머콘트롤 하나를 만든후에
다음과 같이 코딩하십시요.
- Timer1.Interval = 150
Private Sub InitCPU()
Dim lData As Long, lType As Long, lSize As Long
Dim hKey As Long
Qry = RegOpenKey(HKEY_DYN_DATA, "PerfStats\StartStat", hKey)
If Qry <> 0 Then
MsgBox "Statistics 키를 열수 없습니다."
End
End If
lType = REG_DWORD
lSize = 4
Qry = RegQueryValueEx(hKey, "KERNEL\CPUUsage", 0, lType, lData, lSize)
Qry = RegCloseKey(hKey)
End Sub
Private Sub Form_Load()
InitCPU
End Sub
Private Sub Timer1_Timer()
Dim lData As Long, lType As Long, lSize As Long
Dim hKey As Long
Qry = RegOpenKey(HKEY_DYN_DATA, "PerfStats\StatData", hKey)
If Qry <> 0 Then
MsgBox "Statistics 키를 열수 없습니다."
End
End If
lType = REG_DWORD
lSize = 4
Qry = RegQueryValueEx(hKey, "KERNEL\CPUUsage", 0, lType, lData, lSize)
Text1.Text = Format(lData, "##.0") & "" %"
Qry = RegCloseKey(hKey)
End Sub
3. 위와 같이 하신후 실행을 하게되면 텍스트박스에 현재 CPU 사용률이 반복적으로 표시
되는 것을 확인할수 있을 것입니다.
--------------------확인해보시고 답변 기다리겠습니다.------------------
|