مالمشكلة مع إجرائية قتل الـ Process ؟
#1
السلام عليكم ورحمة الله وبركاته

لاحظ إجرائية قتل Process هاته :

PHP كود :
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),0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end; 

استعملتها لقتل Process : explorer.exe

هكدا :

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
begin
  KillTask
('explorer.exe');
end; 

ولكن الامور التي وقعة هي :

1- ثم قتل explorer.exe
2 - بعد 1 ثانية اعيد خلقه اوتوماتكيا لا اعرف كيف ؟

انا اود ان يتم قتله فقط

كيف يتم هدا بارك الله فيكم ؟

بالتوفيق
كن متواضعا ولا تكن متكبرا // الصبر + المثابرة = النجاح
الرد
#2
وعليكم السلام ورحمة الله وبركاته
لن يدعك Windows تقتله نهائيا بهته السهولة
أظن أن هناك Service يقوم بحمايته ابحث عنه وأوقفه.
الرد
#3
وعليك السلام
أنت قتلته وانتها الأمر لذا الدالة تشتغل بشكل عادي
أما الخلق فإن الوندوز يعيد خلقها
جرب في برنامج آخر وليس في برامج الوندوز
+
أنت غلقت explorer الوندوز (المسؤول عن عرض النوافذ وتصفح الملفات وو..)
ربما كنت تقصد مستكشف الأنترنت
ومن يتهيب صعود الجبال يعش أبد الدهر بين التلال و الحفر
الرد
#4
السلام عليكم و رحمة الله

كود :
TerminateProcess(OpenProcess(PROCESS_TERMINATE,BOOL(0),FProcessEntry32.th32ProcessID),[color=Red]0[/color]));

يجب عليك تعيين قيمة ExitCode مختلفة عن الصفر لكي لا يتم اعادة تشغيله.
اترك لك البحث و التجربة.
[-] كل من 1 user says قال شكرا ل STRELiTZIA على المشاركة المفيدة
  • mohamed49
الرد
#5
بارك الله فيك اخي STRELiTZIA لقد غيرة 0 الى 1 ونجحة العملية

لكن ممكن تقل لنا ماهي القيم التي ياخدها البارمتر ExitCode و تشرح دور كل واحد ؟ شرح الله صدرك بالمحبة والإطمئنان

بارك الله فيك وجزاك خيرا

بالتوفيق
كن متواضعا ولا تكن متكبرا // الصبر + المثابرة = النجاح
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم