PDA

View Full Version : حذف یک process از TaskManager



راحله سعادتی
جمعه 11 فروردین 1385, 11:57 صبح
حذف یک process از TaskManager ؟

در واقع جوری که نام Process را بدهی سپس از کار بیندازی ؟

Touska
شنبه 12 فروردین 1385, 19:51 عصر
uses TLHelp32;

procedure KillProcess(ApplicationName: String);
Var
aSnapshotHandle : THandle;
aProcessEntry32 : TProcessEntry32;
ListView1 : TListView;
I : Integer;
bContinue : BOOL; //Kill Proccess IF Running
NewItem : TListItem;
Ret: BOOL;
PrID: Integer; // processidentifier
Ph: THandle; // processhandle
begin
Try
ListView1 := TListView.Create(Self);
ListView1.Parent := MainForm1;
ListView1.Items.Clear;
aSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
aProcessEntry32.dwSize := SizeOf(aProcessEntry32);
bContinue := Process32First(aSnapshotHandle, aProcessEntry32);
while Integer(bContinue) <> 0 do
begin
NewItem := ListView1.Items.Add;
NewItem.Caption := ExtractFileName(aProcessEntry32.szExeFile);
NewItem.subItems.Add(IntToHex(aProcessEntry32.th32 ProcessID, 4));
NewItem.subItems.Add(aProcessEntry32.szExeFile);
bContinue := Process32Next(aSnapshotHandle, aProcessEntry32);
end;
CloseHandle(aSnapshotHandle);
With ListView1 Do
Begin
For I := 0 To Items.Count - 1 Do
Begin
IF Items.Item[I].Caption = ApplicationName Then
Begin
PrID := StrToInt('$' + Items.Item[I].SubItems[0]);
Ph := OpenProcess(1, BOOL(0), PrID);
Ret := TerminateProcess(Ph, 0);
IF Integer(Ret) = 0 Then
MessageDlg('Cannot terminate "' + Items.Item[I].Caption + '"',
mtInformation, [mbOK], 0)
Else
Items.Item[I].Delete;
Break;
End;
End;
End;
ListView1.Free;
Except
MessageDlg('Cannot close this program',mtError,[mbok],0);
End;
end;

mojtaba_z
شنبه 17 شهریور 1386, 08:23 صبح
سلام
KillProcess رو که اجرا میکنم رو خط زیر ایراد میگیره :


ListView1 := TListView.Create(Self);

و پیغام خطاش اینه :

Undeclared identifier : 'self'

Valadi
شنبه 17 شهریور 1386, 09:58 صبح
به تاریخ تاپیک توجه کنید !!!!!!!!

jamjid
شنبه 17 شهریور 1386, 10:04 صبح
مجتبی فایل زیر را دانلود کن
http://hosseindn.persiangig.com/Kill%20of%20process.rar

mojtaba_z
شنبه 17 شهریور 1386, 12:00 عصر
سلام

به تاریخ تاپیک توجه کنید !!!!!!!!

تاریخ تاپیک چه ربطی به جواب دادن به سئوال داره ؟!!!
یعنی اگه کسی همین الان عضو این گروه بشه و یه سئوالی داشته باشه اگه جستجو کنه و مطلبی درباره سئوالش پیدا کنه که برای 1 سال قبل باشه و بخواهد توضیحی در مورد اون بگیره ، شما بهش میگید به تاریخ تاپیک توجه کنید !!!!!!!! . حالا اگر هم سئوالش رو دوباره بپرسه بهش میگید : قبل از ایجاد تاپیک جدید جستجو کنید !!!!!!!!!!

و اما آقای jamjid
من این برنامه رو اجرا کردم . ولی هیچ کاری انجام نمیده ؟
من اسم چند برنامه رو از پنجره Task Manager پیدا کردم و در در قسمت مربوطه نوشتم ولی هیچ کدوم رو حذف نکرد ؟ (اسم برنامه های در حال اجرا رو باید همین طوری پیدا کرد یا راه دیگه ای داره ؟)
اگه چند برنامه با نام های مشابه در Task Manager باشه ، چطوری تمایز قائل بشیم ؟

jamjid
شنبه 17 شهریور 1386, 14:17 عصر
این برنامه باهمین تابعی که آقای touska‌گفتتند نوشته شده است .

من این برنامه رو اجرا کردم . ولی هیچ کاری انجام نمیده ؟

کار می کنه ولی خیلی طول می کشه باید صبر کرد

(اسم برنامه های در حال اجرا رو باید همین طوری پیدا کرد یا راه دیگه ای داره ؟)
برای پیدا کردن اسم برنامه ها راه های دیگری هم هست ولی راهی را که شما رفتید نیز درست است
پنجره Task Manager‌را باز کرده اسم یکی از پروسس ها را در قسمت مربوطه بنویسید پنجره Task Manager‌را نیز ببندید بعد از چند لحظه پروسس مربوطه حذف می شود