Monday, October 13, 2008

Task manager dengan dengan delphi

salah satu fungsi task manager di windows adalah untuk mematikan proses suatu aplikasi bila sudah tidak bisa di matikan secara normal, dengan program delphi pun kita bisa membuat suatu aplikasi yang dapat meng kill suatu proses seperti halnya task manager windows.

langkah - langkahnya :


  1. buka program kesayanganya borland delphi 7.0 ( yang penulis pakai).

  2. pilih new ->Application

  3. tambahkan uses Tlhelp32 pada deklarasi unit.

  4. tambahkan function berikut pada bagian code


function KillTask(ExeFileName: string): Integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;

procedure KillProcess(hWindowHandle: HWND);
var
hprocessID: INTEGER;
processHandle: THandle;
DWResult: DWORD;
begin
SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);
if isWindow(hWindowHandle) then
begin
{ Get the process identifier for the window}
GetWindowThreadProcessID(hWindowHandle, @hprocessID);
if hprocessID <> 0 then
begin
{ Get the process handle }
processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
False, hprocessID);
if processHandle <> 0 then
begin
{ Terminate the process }
TerminateProcess(processHandle, 0);
CloseHandle(ProcessHandle);
end;
end;
end;
end;

5. tambahkan dua buah button, button1 dan button 2 , pada button 1 masukan kode sebagai berikut :

procedure TForm1.Button1Click(Sender: TObject);
begin
KillTask('notepad.exe');
end;

6. double klik button2 dan ketikan kode sebagai berikut :

procedure TForm1.Button2Click(Sender: TObject);
begin
KillProcess(FindWindow('notepad',nil));
end;

contoh diatas digunakan untuk mengkill proses dari notepad.exe , silahkan mencoba

silahkan isi komentar anda disini
EmoticonEmoticon

Note: Only a member of this blog may post a comment.