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

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

убиение процесса по имени ехе [D6, WinXP]


ga3 ©   (2002-12-21 06:08:00) 

мастаки, я давно еще видел на форуме такую функцию, но щас ее нигде найти не могу почемуто:-((
подскажите плиз, замучился нафиг


mukha   (2002-12-21 07:01:00) [1]

Извиняюсь, исправлено

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;


mukha   (2002-12-21 06:29:00) [2]

function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
H: THandle;
FP32: TProcessEntry32;
begin
result := 0;

H := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FP32.dwSize := Sizeof(FP32);
ContinueLoop := Process32First(H,FP32);

while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FP32.szExeFile)) =UpperCase(ExeFileName))
or (UpperCase(FP32.szExeFile) = UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),FP32.th32ProcessID), 0));
ContinueLoop := Process32Next(H,FP32);
end;

CloseHandle(H);
end;

Использование KillTask("Winword.exe")


Наверх

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