![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
убиение процесса по имени ехе [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")