PDA

View Full Version : سوال: بستن یک پروسه با pid



Mask
پنج شنبه 02 دی 1389, 11:16 صبح
با سلام
چطوری میتونم یه Prosecc رو با استفاده از pid اون ببندم.
و دوم اینکه آیا تردها هم pid دارند.
و البته بدونه کامپوننت و با استفاده از کد.
ممنون.

vcldeveloper
پنج شنبه 02 دی 1389, 16:50 عصر
فکر کنم چند بار این رو توضیح دادم:


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 را مطالعه کنید.