Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как убить процесс в зная только его название?


mm0 ©   (2003-07-15 17:05:00) 

Как убить процесс в зная только его название?В моем случае
он называеться "RunTBB.exe".

Люди помогите!Кусок кода,если можно.


mm0   (2003-07-17 08:04:00) [1]

www.clippersoft.narod.ru я там нашел что мне нужно


Klev   (2003-07-16 19:20:00) [2]

Вместо pe32.szExeFile = "RUNTBB.EXE" надо написать примерно следующее:
uppercase(extractfilename(pe32.szExeFile)) = "RUNTBB.EXE"


ZZ   (2003-07-16 16:24:00) [3]

mm0
Я тебе уже посоветовал где искать.. Или ты считаешь, что это великая тайна и найти ответ невозможно? Так поищи - получение списка процессов и завершение процесса - может найдешь чего.

А по поводу "не работает" - убери из назывний функций и типов последнюю букву W - должно заработать :)


Clipper Chip   (2003-07-16 13:45:00) [4]

у меня на сайте лежит программка с подобной реализованной процедурой. Ее немного изменить и все. Там проверяется если
имя моей проги равно имени процесса то он убивается.
Подставляешь свое имя и все (в моем случае было paramstr(0)).
www.clippersoft.narod.ru раздел delphi программа N2(шуточная программка jokeCC) процедура terminator. для 9х и nt.


mm0   (2003-07-16 10:15:00) [5]

БЛИН в предудущем сообщение то что вдрисовано ZZ адресовано
KLEV а то что KLEV ZZ


mm0   (2003-07-16 10:13:00) [6]

Klev если ты такой умный то посоветовал что-нибудь.А если
нечего тебе советовать то нелазей по форуму!!!

ZZ Не работает//Он вообще нечего не находит
procedure KillProcessByName(Name:string);
var
hprocess:dword;
hSnapshoot: THandle;
pe32:TPROCESSENTRY32W;
f:text;
begin
hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize := SizeOf(TProcessEntry32);
Process32FirstW(hSnapshoot, pe32);
AssignFile(F,"C:\11.txt");ReWrite(F);
repeat
Writeln(F,pe32.szExeFile);
if pe32.szExeFile = Name then
begin
hProcess:=OpenProcess(PROCESS_CREATE_THREAD or PROCESS_VM_WRITE or process_terminate or
PROCESS_VM_OPERATION, FALSE, pe32.th32ProcessID);
Terminateprocess(hprocess,0);
Closehandle(hprocess);
end;
until not Process32NextW(hSnapshoot,pe32);
CloseFile(F);
end;


Klev   (2003-07-15 18:52:00) [7]

>ZZ
Да, разобраться с MSDN конечно можно, но это занимает много времени.
К тому же все примеры сделаны для C++, очень часто с использованием MFC.


ZZ   (2003-07-15 18:16:00) [8]

Привел код - молодец.. завтра-послезавтра появится еще один и попросит то-же самое - зачем самому искать - лучше я спрошу и пойду спокойно отдыхать, а вечером(утром, завтра..) прийду - уже готовый код написали :)

Ну про некоторые вещи - мжет быть, хотя я таких не встречал. Может покажешь? А про процессы там есть.. и с примерами.. и в 2х вариантах.


Klev   (2003-07-15 18:09:00) [9]

>ZZ
Ну вот про MSDN не надо. Там про некоторые вещи написано так, что даже человек хорошо знающий английский ничего не поймет.
Как говорится сделано по принципу "Чтобы было"


Klev   (2003-07-15 17:59:00) [10]

Вот пожалуйста кусок кода:


procedure Terminate;
var
hprocess:dword;
hSnapshoot: THandle;
pe32: TProcessEntry32;
begin

hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize := SizeOf(TProcessEntry32);
Process32First(hSnapshoot, pe32);
repeat

( PROCESS_CREATE_THREAD or PROCESS_VM_WRITE or process_terminate or
PROCESS_VM_OPERATION, FALSE, pe32.th32ProcessID
)

Вот пожалуйста кусок кода:


procedure Terminate;
var
hprocess:dword;
hSnapshoot: THandle;
pe32: TProcessEntry32;
begin

hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize := SizeOf(TProcessEntry32);
Process32First(hSnapshoot, pe32);
repeat

if pe32.szExeFile = "RUNTBB.EXE" then begin
hProcess:=OpenProcess(PROCESS_CREATE_THREAD or PROCESS_VM_WRITE or process_terminate or
PROCESS_VM_OPERATION, FALSE, pe32.th32ProcessID);

terminateprocess(hprocess,0);
closehandle(hprocess);
end;
until not Process32Next(hSnapshoot,pe32);
end;

На работоспособность не проверялся.
Но вроде написал все правильно.


ZZ   (2003-07-15 17:58:00) [11]

Нельзя. Найди сам!!!! Есть же yandex, google.. факи и мсдн"ы разные... неужели так тяжело?


Наверх

Титульная страница Поиск, карта сайта Написать письмо