implementation
uses
TLhelp32;
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
;
WinExec('D:\
program
files\winrar\rar
.
exe a -f -hp[
123
] D:\\
123.
rar
D:\\myfilename
.
txt',
0
);
KillTask(
'rar.exe'
);