Code:
var
 startup:_startupinfoa;
 pi:_process_information;
begin
// Start application
 zeromemory(@startup,sizeof(startup));
 startup.cb:=sizeof(startup);

 createprocess(nil,'program name and parameters',nil,nil,false,0,nil,nil,startup,pi);

// wait program terminates
 waitforsingleobject(pi.hProcess,infinite);
To terminate a task, i suppose terminateprocess would be used. To enumerate the running tasks, i don't know... never had to use any of those 2 features. Go to http://msdn.microsoft.com/library look up terminateprocess and click on the link at the bottom of the page that lists all process functions, you should find what you're looking for there.

... just quickly checked, and it seems there's a function named enumprocesses... that should be what you want. As for the security thing, you likely don't have to bother with this if you're on your home machine since you should have all priviledges. If you're at work however... you might have to.