CPU USAGE adalah Grafik yang menunjukkan waktu yang dibutuhkan prosesor dalam bekerja. Ditampilkan dalam persen. Jadi, counter ini adalah indikator dari kegiatan prosesor pada saat ini. Jika prosesor kita sedang sibuk bekerja, maka indikator akan naik, terkadang mencapai diatas 90% bahkan 100%. Dan dapat dipastikan komputer akan berjalan dengan lambat.
Berikut ini langkah-langkah cara pembuatan aplikasi CPU Usage di sertai dengan Script Code.
1. Download komponen TMS untuk Delphi 7.
2. Tambahkan komponen Timer, VrAngularMeter, VrMeter, VrProgressBar, dan VrDigit pada Form.
3. Masukkan Script Code berikut tepat dibawah {$R *.dfm}
1. Download komponen TMS untuk Delphi 7.
2. Tambahkan komponen Timer, VrAngularMeter, VrMeter, VrProgressBar, dan VrDigit pada Form.
3. Masukkan Script Code berikut tepat dibawah {$R *.dfm}
const SystemBasicInformation = 0; SystemPerformanceInformation = 2; SystemTimeInformation = 3; type TPDWord = ^DWORD; TSystem_Basic_Information = packed record dwUnknown1: DWORD; uKeMaximumIncrement: ULONG; uPageSize: ULONG; uMmNumberOfPhysicalPages: ULONG; uMmLowestPhysicalPage: ULONG; uMmHighestPhysicalPage: ULONG; uAllocationGranularity: ULONG; pLowestUserAddress: Pointer; pMmHighestUserAddress: Pointer; uKeActiveProcessors: ULONG; bKeNumberProcessors: byte; bUnknown2: byte; wUnknown3: word; end; type TSystem_Performance_Information = packed record liIdleTime: LARGE_INTEGER; {LARGE_INTEGER} dwSpare: array[0..75] of DWORD; end; type TSystem_Time_Information = packed record liKeBootTime: LARGE_INTEGER; liKeSystemTime: LARGE_INTEGER; liExpTimeZoneBias: LARGE_INTEGER; uCurrentTimeZoneId: ULONG; dwReserved: DWORD; end; var NtQuerySystemInformation: function(infoClass: DWORD; buffer: Pointer; bufSize: DWORD; returnSize: TPDword): DWORD; stdcall = nil; liOldIdleTime: LARGE_INTEGER = (); liOldSystemTime: LARGE_INTEGER = ();
function Li2Double(x: LARGE_INTEGER): Double; begin Result := x.HighPart * 4.294967296E9 + x.LowPart End;
Procedure GetCPUUsage; var SysBaseInfo: TSystem_Basic_Information; SysPerfInfo: TSystem_Performance_Information; SysTimeInfo: TSystem_Time_Information; status: Longint; {long} dbSystemTime: Double; dbIdleTime: Double; bLoopAborted : boolean; begin if @NtQuerySystemInformation = nil then NtQuerySystemInformation := GetProcAddress(GetModuleHandle('ntdll.dll'), 'NtQuerySystemInformation'); // Mendapatkan presentase atau jumlah penggunaan processor status := NtQuerySystemInformation(SystemBasicInformation, @SysBaseInfo, SizeOf(SysBaseInfo), nil); if status <> 0 then Exit; bLoopAborted := False; while not bLoopAborted do begin // Membuat waktu sistem baru status := NtQuerySystemInformation(SystemTimeInformation, @SysTimeInfo, SizeOf(SysTimeInfo), 0); if status <> 0 then Exit; // Membuat waktu idle CPU baru status := NtQuerySystemInformation(SystemPerformanceInformation, @SysPerfInfo, SizeOf(SysPerfInfo), nil); if status <> 0 then Exit; // Jika panggilan pertama, maka akan diabaikan / dilewatkan saja if (liOldIdleTime.QuadPart <> 0) then begin dbIdleTime := Li2Double(SysPerfInfo.liIdleTime) - Li2Double(liOldIdleTime); dbSystemTime := Li2Double(SysTimeInfo.liKeSystemTime) - Li2Double(liOldSystemTime); dbIdleTime := dbIdleTime / dbSystemTime; dbIdleTime := 100.0 - dbIdleTime * 100.0 / SysBaseInfo.bKeNumberProcessors + 0.5; // Menampilkan Presentase Form1.Label1.Caption := FormatFloat('0',dbIdleTime); Application.ProcessMessages; end; // Membuat waktu idle CPU dan waktu sistem yang baru liOldIdleTime := SysPerfInfo.liIdleTime; liOldSystemTime := SysTimeInfo.liKeSystemTime; // menunggu Timer dijalankan dalam 1 Detik Sleep(200); end; End;4. Double Click pada komponen Timer, dan masukkan Script Code berikut.
Procedure TForm1.Timer1Timer(Sender: TObject); var TId: Cardinal; begin Form1.VrProgressBar1.Position :=StrToInt(Form1.Label1.Caption); Form1.VrProgressBar2.Position :=StrToInt(Form1.Label1.Caption); Form1.VrMeter1.Position:=StrToInt(Form1.Label1.Caption); Form1.VrNum1.Value:=StrToInt(Form1.Label1.Caption); Form1.VrDigit1.Value:=StrToInt(Form1.Label1.Caption); Timer1.Interval:=200; End;5. Double click pada Form atau lakukan langkah berikut (Form1 > Object inspector > FormCreate), lalu masukkan script berikut.
Procedure TForm1.FormCreate(Sender: TObject); var TId: Cardinal; begin CreateThread(nil, 0, @GetCPUUsage, 0, 0, TId); End;
6. Run program yang baru dibuat, dengan klik tombol Run pada delphi atau tekan F9. *Jika ada kendala pada Script Code silahkan hubungi kontak dibawah postingan ini.
7. Untuk tampilan, silahkan kreasikan sesuai dengan keinginan. Dan berikut tampilan dari aplikasi CPU Usage Saya.
7. Untuk tampilan, silahkan kreasikan sesuai dengan keinginan. Dan berikut tampilan dari aplikasi CPU Usage Saya.
Kami juga menerima pemesanan pembuatan aplikasi online maupun offline, pembuatan laporan Tugas Akhir, Skripsi, dan PKP.
MANAJEMEN INFORMATIKA (MI)
Untuk info lebih lanjut hub. :
Untuk info lebih lanjut hub. :
- gmail : gustisunarto8@gmail.com, wikaharyati@gmail.com
- whatsapp : 0877-1340-1771
- 7D98D33A
Tidak ada komentar:
Posting Komentar