Futó alkalmazások listája, és kilövésük

Windows alatt futó programok listáját kapjuk meg a lenti példa segitségével, sőt még ki is lőhetjük azokat, ha a program sorszámát beirod a SpinEdit1-be, és nyomsz egy Buttont.

uses TLHelp32;
...
procedure TForm1.FormCreate(Sender: TObject);
var
a:tHandle;
b:tProcessEntry32;
begin
a:=CreateToolHelp32SnapShot(TH32CS_SNAPALL,0);
b.dwSize:=SizeOf(b);
if Integer(Process32First(a,b))<>0 then
repeat
ListBox1.items.Append(IntToStr(b.th32ProcessID)+': '+b.szExeFile);
until Integer(Process32Next(a,b))=0;
closehandle(a);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a:tHandle;
begin
a:=OpenProcess(PROCESS_TERMINATE,bool(0),
SpinEdit1.Value); {ide ird a kilovendo proggi sorszámát!!!}
TerminateProcess(a,0);
CloseHandle(a);
end;