Membuat Task Manager dengan Delphi 7

Sambil menyelam minum air, istilah itu cukup tepat untukBasic Pattern Recognition. Read more ... » sayaMembuka Command Prompt mode Administrator. Read more ... » yangPengumuman Calon Asisten Praktikum Basisdata. Read more ... » masih belajar dasar pemrograman denganTUGAS STRUKTUR DATA KELAS SAMI. Read more ... » menggunakan DelphiPrinsip dasar pembuatan Keylogger. Read more ... » 7. Karena pada kaliMenjalankan Aplikasi Android di Windows. Read more ... » ini saya akan mencoba membuat task managerMengenal Nilai PID Proses di Windows. Read more ... » dengan delphi. Sebelum tahap pembuatan kitaCara mengatasai Cannot modify header PHP. Read more ... » akan menjelaskan sedikit algoritma yang saya gunakan.

Algoritmanya begini, saat software berjalan akan langsung memeriksa PID Value suatu program yang bekerja, keuntungan dengan menggunakan PID adalah kita bisa mengkill suatu virusMenghapus Virus new Heur Level 9. Read more ... » yang selalu berganti nama. Setelah PID value diperiksa selanjutnya kita menggunkan Previllage AdministratorMembuka Command Prompt mode Administrator. Read more ... » agar dapat mengkill program tersebut.

Cukup segitu ja yah?susah jelasinnya, soalnya q juga lum paham.hehe Berikutnya kita langsung praktekan yah, ikuti langkah berikut:

Task manager

Tampilan Blue Print Program task manager

  • Oke, tahap selanjutnya beri nama masing-masing Button dengan CaptionCara mengatasai Cannot modify header PHP. Read more ... » : Refresh, Kill Prosess dan Cancel.
  • Sekarang tekan tombol F12 untuk masuk ke Jendela Source.
  • Nah sebelum menulis program, tambahkan “tlhelp32” pada uses dan tambahkan variabel global “lvi:TListitem;”
  • Ketikan source berikut setelah Implementation.
 Procedure TForm1.TutupProsesID(ID:THandle);
//Disini kode untuk menututu proses
procedure TerminateProcessById(AID: Cardinal);
var
  HndProcess,ExCode : THandle;
begin
  //Baca Proses ID-nya
  HndProcess := OpenProcess(PROCESS_ALL_ACCESS,True,AID);
  GetExitCodeProcess(HndProcess,ExCode); {Dapatkan kode untuk menutupnya}
  TerminateProcess(HndProcess,ExCode) {Tutup prosess sekarang..!};
  CloseHandle(HndProcess); {Fresh Memory}
end;
{
 Nah ini kode untuk dapat mengakses proses service yang biasanya tidak bisa
 di terminate dengan kode biasa, untuk itu diperlukan kode tambahan
 berikut kodenya :
}
function SetPrivilege(aPrivilegeName: string; aEnabled: boolean): boolean;
var
  TP : TTokenPrivileges;
  TPPrev : TTokenPrivileges;
  Token : THandle;
  dwRetLen : DWord;
begin
  Result := False; //Nilai default
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token);
  TP.PrivilegeCount := 1;
  if (LookupPrivilegeValue(nil, PChar(aPrivilegeName), TP.Privileges[0].LUID)) then begin
    if (aEnabled) then
      TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
    else
      TP.Privileges[0].Attributes := 0;
    dwRetLen := 0;
    Result := AdjustTokenPrivileges(Token, False, TP, SizeOf(TPPrev), TPPrev, dwRetLen);
  end;
  CloseHandle(Token);
end;

function KillProcessByPID(pid: cardinal): boolean;
var
  hProc : THandle;
begin
  Result := False;
  //Untuk mematikan proses dibutuhkan kode privilege
  if not SetPrivilege('SeDebugPrivilege', True) then exit;
  hProc := OpenProcess(STANDARD_RIGHTS_REQUIRED or PROCESS_TERMINATE, False, pid);
  try
    if hProc > 0 then begin
      Result := TerminateProcess(hProc, 1);
    end;
  finally
    CloseHandle(hProc);
    SetPrivilege('SeDebugPrivilege', False);
  end;
end;

Begin
  KillProcessByPID(ID); //Tutup proses ID sekarang juga...!
End;

//Baca Semua proses di sini..
procedure TForm1.BacaProses;
var
  hSnap:Cardinal;
  pe32:TProcessEntry32;
  s:String;
begin
  //Buat dahulu snapshootnya di mulai dari proses desktop
  hsnap:=CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0);
  if hSnap = INVALID_HANDLE_VALUE then
    exit;
  FillChar(pe32, sizeof(pe32),0);
  pe32.dwSize:=Sizeof(pe32);
  if not Process32First(hsnap, pe32) then
    exit;
  ListView1.Clear; //hapus seluruh list
  //tambahkan seluruh list dengan nama dan PID proses..
  repeat
    lvi:=ListView1.Items.Add;
    s:=IntToStr(pe32.th32ProcessID);
    lvi.caption := pe32.szExeFile;
    lvi.subitems.Add(s);
  until not Process32Next(hsnap, pe32);
  CloseHandle(hSnap);
end;
  • Lanjut… Klik 2 x pada Button refresh dan ketikan : Bacaproses;
  • Sama seperti diatas klik 2 x pada button Kill Prosess dan ketikan berikut :
try if Application.MessageBox('Yakin akan menutup program?'+#13+'Kemungkinan anda akan kehilangan data saat kill program ini.','::: Warning !!! :::', MB_YESNO or MB_ICONHAND)
=mryes then
  begin
    TutupProsesID(strtoint(listview1.Selected.SubItems[0]));
    Form2.Refresh;
  end;
except
  if Application.MessageBox('Upss!!! Silahkan pilih program terlebih dahulu.','::: Warning !!! :::', MB_RETRYCANCEL)
=mrRetry then
  begin
    ListView1.ItemFocused;
  end
  else
      FormShow(sender);
end;
  • Sekarang Cek program dengan menekan CTRKL + F9, jika error silahkan periksa kembali.
  • Sekarang coba Running Program dengan tombol F9, maka akan tampak seperti berikut :
Alternate Killer

Program setelah di Running

Oke, cukup sekian dulu yah??Mudah-mudahan bermanfaat.

NB: Source program, Program jadi dapat di download disini dan disini.

Posted in Delphi 7, Programing and tagged , .