به نام دانای بر حق
یکی از چیزهایی که قبلا تو xmen برای این حقیر جذاب بودش این بودش که برای هر کاری یه sample وجود داشتش. استاد مبین همیشه پیشتاز این عرصه بودش با اقتدا به ایشان. البته انتشار این مثال ها جنبه عملی و چیز جدیدی نداره ها فقط مثال هستش بودنشون خالی از لطف نیست.
kill process با استفاده از نام فایل:
استفاده از unit مشخص شده Winapi.TlHelp32 ضرورت داره:
تابع مورد نظر :
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), ۰)); ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end;
نحوه استفاده:
procedure TForm1.btnKillTaskClick(Sender: TObject); begin KillTask('test.exe'); end;
kill process ستفاده از pid :
استفاده از تابع زیر میتونید یک برنامه با استفاده از pid به کارش خاتمه بدین:
function TerminateProcessByID(ProcessID: Cardinal): Boolean; var hProcess : THandle; begin Result := False; hProcess := OpenProcess(PROCESS_TERMINATE,False,ProcessID); if hProcess > 0 then try Result := Win32Check(Windows.TerminateProcess(hProcess,0)); finally CloseHandle(hProcess); end; end;
نحوه استفاده:
procedure TForm1.btnKillTaskClick(Sender: TObject); begin TerminateProcessByID(123); end;
دیدگاهتان را بنویسید لغو پاسخ