فکر کنم چند بار این رو توضیح دادم:
uses ProcessInfo;
function TerminateProcessByID(const ProcessID: Cardinal): Boolean;
var
ProcInfo : TProcessInfo;
Process : TProcessItem;
begin
ProcInfo := TProcessInfo.Create(nil);
try
Process := ProcInfo.RunningProcesses.FindByID(ProcessID);
if Assigned(Process) then
Result := Process.TerminateProcess
else
Result := False;
finally
ProcInfo.Free;
end;
end;
و دوم اینکه آیا تردها هم pid دارند.
pid یعنی ProcessID، پس منطقی هست که Process ها ProcessID داشته باشند. Thread ها ThreadID دارند، و OwnerProcessID که مشخص کننده Process ایی هست که مالک اون Thread هست.
و البته بدونه کامپوننت و با استفاده از کد.
چیزی که در بالا نوشتم کد هست. اگر میخواید بدونید چطور کار میکنه، و خودتون کدش را بنویسید، می تونید برید کد TProcessInfo را مطالعه کنید.