⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.frm

📁 简单实用的CPU监控器源码
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmmain 
   BorderStyle     =   3  'Fixed Dialog
   ClientHeight    =   3195
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   3195
   ScaleWidth      =   4680
   ShowInTaskbar   =   0   'False
   StartUpPosition =   3  '窗口缺省
   Begin VB.Frame Frame1 
      Height          =   2895
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   4335
      Begin VB.PictureBox pctPrg 
         BackColor       =   &H00FFC0FF&
         FillColor       =   &H0000C000&
         ForeColor       =   &H0000FF00&
         Height          =   2415
         Left            =   240
         ScaleHeight     =   2355
         ScaleWidth      =   3795
         TabIndex        =   1
         Top             =   240
         Width           =   3855
         Begin VB.Timer Timer 
            Interval        =   100
            Left            =   1800
            Top             =   1440
         End
      End
   End
End
Attribute VB_Name = "frmmain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit '变量检查

    Private 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

    '获取一个指定的注册表项的设置值

    Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

    '打开一个指定的的注册表项

    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

    '关闭系统注册表中的指定项(或指定键)

    Private Const REG_DWORD = 4

    Private Const HKEY_DYN_DATA = &H80000006

    '这两个常数是读写注册表必须的

    '以上API函数和常数结合能够实现对注册表任意指定项的访问

    Private Avg As Long

    'CPU资源占用参数平均数

    Private Sum As Long

    'CPU资源占用参数合计数

    Private Index As Long '统计次数

    '窗体级函数、常数和变量声明结束

    Private Function GetCPUUsage() As Long

      On Error Resume Next

      '忽略可能产生的错误

    Dim Data As Long, Typ As Long, Size As Long

      Dim hKey As Long

      Dim hRet As Long

      hRet = RegOpenKey(HKEY_DYN_DATA, "PerfStatsStatData", hKey)

    '打开该主键

      hRet = RegQueryValueEx(hKey, "KERNELCPUUsage", 0&, REG_DWORD, Data, 4)

    '读取主键值

      GetCPUUsage = Data

    '为自定义函数赋值

      hRet = RegCloseKey(hKey)

    '关闭该主键

    End Function


Private Sub Form_Load()
  '初始化标题和提示信息

      Dim hKey As Long, Data As Long

      App.Title = "CPU监视器占有率:"

      Me.Caption = App.Title

    '初始化应用程序标题栏

      pctPrg.ToolTipText = "单击右键退出程序!"

      RegOpenKey HKEY_DYN_DATA, "PerfStats StartStat", hKey

      RegQueryValueEx hKey, "KERNELCPUUsage", 0, REG_DWORD, Data, 4

      RegCloseKey hKey

      '打开注册表的资源监控标识


End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Timer.Enabled = False

End Sub

Private Sub Form_Unload(Cancel As Integer)
End '结束程序

End Sub

Private Sub pctPrg_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then

      Unload Me

      End If


End Sub

Private Sub Timer_Timer()
'利用定时器周期性地读取资源状况

      '本程序每隔0.1秒读取一次数据

      Dim tmp As Long ' CPU资源占用状况参数

      tmp = GetCPUUsage '获得参数

      Me.Caption = App.Title & FormatPercent(tmp / 100)

    '在窗体标题栏用百分比数字形式反映占用率

      Sum = Sum + tmp '累加统计

      Index = Index + 1 '次数统计

      Avg = Int(Sum / Index) '求平均值

      pctPrg.Cls '清除图示内容

      pctPrg.Line (0, 0)-(tmp, 18), &HBF
      '以绿色图示资源占用状况

      pctPrg.Line (Avg, 0)-(Avg, 18), &HFF

      '以深红色画出平均线

      pctPrg.Line (Avg + 1, 0)-(Avg + 1, 18), &HFF


End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -