Кажется так же, как и в 98-м... А в 98-м, например, так: Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hkey As Long) As Long Private Const HKEY_DYN_DATA = &H80000006 Private Const STANDARD_RIGHTS_ALL = &H1F0000 Private Const READ_CONTROL = &H20000 Private Const STANDARD_RIGHTS_READ = (READ_CONTROL) Private Const KEY_QUERY_VALUE = &H1 Private Const KEY_SET_VALUE = &H2 Private Const KEY_CREATE_SUB_KEY = &H4 Private Const KEY_ENUMERATE_SUB_KEYS = &H8 Private Const KEY_NOTIFY = &H10 Private Const KEY_CREATE_LINK = &H20 Private Const SYNCHRONIZE = &H100000 Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE)) Private Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE)) Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal WFlags As Long) As Long Dim hkey As Long Dim dwCPUUsage As Long Dim lpcbData As Long Dim bStart As Boolean Private Sub Form_Load() SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3 End Sub Private Sub cmdStart_Click() bStart = Not bStart If bStart Then cmdStart.Caption = "&Stop" If RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\StartStat", 0, KEY_ALL_ACCESS, hkey) <> 0 Then Exit Sub lpcbData = 4 RegQueryValueEx hkey, "KERNEL\CPUUsage", 0, 0, dwCPUUsage, lpcbData RegCloseKey hkey If RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\StatData", 0, KEY_READ, hkey) <> 0 Then Exit Sub Do While bStart RegQueryValueEx hkey, "KERNEL\CPUUsage", 0, 0, dwCPUUsage, lpcbData cmdStart.Caption = dwCPUUsage t1 = Timer: Do While Timer - t1 < 0.5: DoEvents: Loop Loop RegCloseKey hkey If RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\StopStat", 0, KEY_ALL_ACCESS, hkey) <> 0 Then Exit Sub lpcbData = 4 RegQueryValueEx hkey, "KERNEL\CPUUsage", 0, 0, dwCPUUsage, lpcbData RegCloseKey hkey Else cmdStart.Caption = "&Start" Caption = "Stoped..." End If End Sub Private Sub Form_Unload(Cancel As Integer) If bStart Then cmdStart_Click End Sub
Ответить
|