CPU使用率
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, CommCtrl, StdCtrls, Menus,WinSpool, ExtCtrls, Validat, Buttons,
  Registry;type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Timer1: TTimer;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
    started : boolean;
    reg : TRegistry;
  public
    { Public-Deklarationen }
  end;var
  Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
  var
  Dummy : array[0..1024] of byte;begin
  Reg:=TRegistry.Create;
  Reg.RootKey:=HKEY_DYN_DATA;     //统计数据在这个表项下
  Reg.OpenKey('PerfStats\StartStat',false);       //   Reg.ReadBinaryData('KERNEL\CPUUsage',Dummy,Sizeof(Dummy));
  Reg.CloseKey;
  started:=true;
end;procedure TForm1.Timer1Timer(Sender: TObject);
  var
  CPUU : integer;begin
  if started then
  begin
    Reg.OpenKey('PerfStats\StatData',false);       
    Reg.ReadBinaryData('KERNEL\CPUUsage',CPUU,SizeOf(Integer));
    Reg.CloseKey;
    Label1.Caption:=IntToStr(CPUU)+'%';
  end;
end;procedure TForm1.Button2Click(Sender: TObject);
  var
  Dummy : array[0..1024] of byte;begin
'PerfStats/StopStat' }
  Reg.OpenKey('PerfStats\StopStat',false);      
  Reg.ReadBinaryData('KERNEL\CPUUsage',Dummy,SizeOf(Dummy));
  Reg.Free;
  Started:=false;
end;end.

解决方案 »

  1.   

    检测当前内存
    procedure TForm1.Button2Click(Sender: TObject);var str:String;begin ClearMemoryInData; GlobalMemoryStatus(m1); str:='内存使用百分比 :'+IntToStr(m.dwMemoryLoad)+','+IntToStr(m1.dwMemoryLoad)+#13#10+  '实际内存总字节数 :'+IntToStr(m.dwTotalPhys)+','+IntToStr(m1.dwTotalPhys)+#13#10+  '可用的实际内存字节数:'+IntToStr(m.dwAvailPhys)+','+IntToStr(m1.dwAvailPhys)+#13#10+  '分页文件总字节数 :'+IntToStr(m.dwTotalPageFile)+','+IntToStr(m1.dwTotalPageFile)+#13#10+  '分页文件可用字节数 :'+IntToStr(m.dwAvailPageFile)+','+IntToStr(m1.dwAvailPageFile)+#13#10+  '虚拟内存的总字节数 :'+IntToStr(m.dwTotalVirtual)+','+IntToStr(m1.dwTotalVirtual)+#13#10+  '可用的虚拟内存字节数:'+IntToStr(m.dwAvailVirtual)+','+IntToStr(m1.dwAvailVirtual)+#13#10; MessageBox(Handle,PChar(str),'提示信息',MB_OK);end; 
      

  2.   

    gz 取得cpu和内存的利用率有什么用呢??